aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-14 23:01:53 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-14 23:01:53 +0000
commit59b4239289ab1fb623e72c5d3a772f0c6e17cb03 (patch)
treefd7d6f0e60a73c32a35ae62900c8eddc9269dc9c
parent221feac1bd8bfd72c4de705be5ba236b8a6d538c (diff)
parent76c5901f2a7f593fd26d3bc9fa22eadf10fb8620 (diff)
downloadangle-sdk-release.tar.gz
Snap for 11841552 from 76c5901f2a7f593fd26d3bc9fa22eadf10fb8620 to sdk-releasesdk-release
Change-Id: Idbfd2a0dd7f4cd05f9448d930d9d7031ed2f5fbc
-rw-r--r--.gitignore1
-rw-r--r--Android.bp1
-rw-r--r--BUILD.gn12
-rw-r--r--DEPS64
-rw-r--r--build/.clang-tidy3
-rw-r--r--build/.clangd4
-rw-r--r--build/DEPS82
-rw-r--r--build/android/PRESUBMIT.py24
-rwxr-xr-xbuild/android/gyp/lint.py1
-rwxr-xr-xbuild/android/gyp/proguard.py30
-rw-r--r--build/config/android/BUILD.gn7
-rw-r--r--build/config/android/rules.gni2
-rw-r--r--build/config/clang/BUILD.gn6
-rw-r--r--build/config/compiler/BUILD.gn21
-rw-r--r--build/config/siso/main.star1
-rw-r--r--build/fuchsia/linux_internal.sdk.sha12
-rw-r--r--build/fuchsia/test/ffx_emulator.py52
-rwxr-xr-xbuild/install-build-deps.py17
-rw-r--r--build/rust/rust_bindgen.gni17
-rw-r--r--build/rust/std/fake_root/Cargo.toml.template1
-rw-r--r--build/rust/std/remap_alloc.cc2
-rw-r--r--build/rust/tests/test_cpp_including_rust/shared_unittests.cc12
-rw-r--r--build/rust/tests/test_cpp_including_rust/static_unittests.cc12
-rw-r--r--build/rust/tests/test_rust_calling_cpp/cpp_library.cc2
-rw-r--r--build/util/LASTCHANGE2
-rw-r--r--build/util/LASTCHANGE.committime2
-rwxr-xr-xbuild/util/ide_query34
-rw-r--r--build_overrides/dawn.gni1
-rw-r--r--extensions/ANGLE_request_extension.txt4
-rw-r--r--extensions/EGL_ANGLE_no_error.txt76
-rw-r--r--include/EGL/eglext_angle.h8
-rw-r--r--include/GLSLANG/ShaderLang.h5
-rw-r--r--include/platform/autogen/FeaturesVk_autogen.h7
-rw-r--r--include/platform/vk_features.json8
-rw-r--r--scripts/code_generation_hashes/ANGLE_shader_translator.json4
-rw-r--r--scripts/code_generation_hashes/Extension_files.json4
-rw-r--r--scripts/code_generation_hashes/GL_EGL_WGL_loader.json16
-rw-r--r--scripts/code_generation_hashes/GL_EGL_entry_points.json36
-rw-r--r--scripts/code_generation_hashes/GLenum_value_to_string_map.json2
-rw-r--r--scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json2
-rw-r--r--scripts/code_generation_hashes/interpreter_utils.json6
-rw-r--r--scripts/code_generation_hashes/proc_table.json6
-rw-r--r--scripts/egl_angle_ext.xml9
-rwxr-xr-xscripts/generate_entry_points.py49
-rw-r--r--scripts/registry_xml.py1
-rw-r--r--src/common/entry_points_enum_autogen.cpp2
-rw-r--r--src/common/entry_points_enum_autogen.h1
-rw-r--r--src/compiler/translator/Compiler.cpp1
-rw-r--r--src/compiler/translator/ParseContext.cpp9
-rw-r--r--src/compiler/translator/ParseContext.h12
-rw-r--r--src/compiler/translator/ShaderLang.cpp1
-rw-r--r--src/compiler/translator/glslang.y6
-rw-r--r--src/compiler/translator/glslang_tab_autogen.cpp6
-rw-r--r--src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp2
-rw-r--r--src/libANGLE/Caps.cpp1
-rw-r--r--src/libANGLE/Caps.h3
-rw-r--r--src/libANGLE/Context.cpp14
-rw-r--r--src/libANGLE/Display.cpp1
-rw-r--r--src/libANGLE/ProgramExecutable.cpp8
-rw-r--r--src/libANGLE/ProgramExecutable.h4
-rw-r--r--src/libANGLE/ProgramPipeline.cpp34
-rw-r--r--src/libANGLE/ProgramPipeline.h6
-rw-r--r--src/libANGLE/ResourceManager.cpp60
-rw-r--r--src/libANGLE/ResourceManager.h6
-rw-r--r--src/libANGLE/ResourceMap.h59
-rw-r--r--src/libANGLE/ResourceMap_unittest.cpp10
-rw-r--r--src/libANGLE/capture/FrameCapture.cpp33
-rw-r--r--src/libANGLE/capture/capture_egl_autogen.cpp11
-rw-r--r--src/libANGLE/capture/capture_egl_autogen.h3
-rw-r--r--src/libANGLE/capture/serialize.cpp20
-rw-r--r--src/libANGLE/renderer/metal/TextureMtl.mm15
-rw-r--r--src/libANGLE/renderer/renderer_utils.cpp27
-rw-r--r--src/libANGLE/renderer/renderer_utils.h9
-rw-r--r--src/libANGLE/renderer/vulkan/ContextVk.cpp2
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp12
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramVk.cpp19
-rw-r--r--src/libANGLE/renderer/vulkan/SurfaceVk.cpp31
-rw-r--r--src/libANGLE/renderer/vulkan/vk_helpers.cpp60
-rw-r--r--src/libANGLE/renderer/vulkan/vk_helpers.h8
-rw-r--r--src/libANGLE/renderer/vulkan/vk_ref_counted_event.cpp62
-rw-r--r--src/libANGLE/renderer/vulkan/vk_ref_counted_event.h110
-rw-r--r--src/libANGLE/renderer/vulkan/vk_renderer.cpp15
-rw-r--r--src/libANGLE/renderer/vulkan/vk_renderer.h12
-rw-r--r--src/libANGLE/renderer/vulkan/vk_utils.cpp3
-rw-r--r--src/libANGLE/renderer/vulkan/vk_wrapper.h1
-rw-r--r--src/libANGLE/renderer/wgpu/ContextWgpu.cpp84
-rw-r--r--src/libANGLE/renderer/wgpu/ContextWgpu.h3
-rw-r--r--src/libANGLE/renderer/wgpu/FramebufferWgpu.cpp122
-rw-r--r--src/libANGLE/renderer/wgpu/FramebufferWgpu.h4
-rw-r--r--src/libANGLE/renderer/wgpu/TextureWgpu.cpp2
-rw-r--r--src/libANGLE/renderer/wgpu/wgpu_helpers.cpp104
-rw-r--r--src/libANGLE/renderer/wgpu/wgpu_helpers.h26
-rw-r--r--src/libANGLE/validationEGL.cpp13
-rw-r--r--src/libANGLE/validationEGL_autogen.h3
-rw-r--r--src/libEGL/egl_loader_autogen.cpp3
-rw-r--r--src/libEGL/egl_loader_autogen.h2
-rw-r--r--src/libEGL/libEGL_autogen.cpp7
-rw-r--r--src/libEGL/libEGL_autogen.def3
-rw-r--r--src/libEGL/libEGL_vulkan_secondaries_autogen.def3
-rw-r--r--src/libGLESv2/egl_context_lock_autogen.h3
-rw-r--r--src/libGLESv2/egl_context_lock_impl.h6
-rw-r--r--src/libGLESv2/egl_ext_stubs.cpp7
-rw-r--r--src/libGLESv2/egl_ext_stubs_autogen.h1
-rw-r--r--src/libGLESv2/entry_points_egl_autogen.cpp435
-rw-r--r--src/libGLESv2/entry_points_egl_ext_autogen.cpp741
-rw-r--r--src/libGLESv2/entry_points_egl_ext_autogen.h3
-rw-r--r--src/libGLESv2/global_state.cpp12
-rw-r--r--src/libGLESv2/global_state.h3
-rw-r--r--src/libGLESv2/libGLESv2_autogen.def3
-rw-r--r--src/libGLESv2/libGLESv2_no_capture_autogen.def3
-rw-r--r--src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def3
-rw-r--r--src/libGLESv2/libGLESv2_with_capture_autogen.def3
-rw-r--r--src/libGLESv2/proc_table_egl_autogen.cpp1
-rw-r--r--src/tests/angle_end2end_tests.gni1
-rw-r--r--src/tests/angle_end2end_tests_expectations.txt8
-rw-r--r--src/tests/compiler_tests/Parse_test.cpp55
-rw-r--r--src/tests/egl_tests/EGLIOSurfaceClientBufferTest.cpp67
-rw-r--r--src/tests/egl_tests/EGLNoErrorTest.cpp43
-rw-r--r--src/tests/egl_tests/EGLPrintEGLinfoTest.cpp3
-rw-r--r--src/tests/gl_tests/ClearTest.cpp22
-rw-r--r--src/tests/gl_tests/GLSLTest.cpp20
-rw-r--r--third_party/abseil-cpp/BUILD.gn2
-rw-r--r--third_party/abseil-cpp/CMake/AbseilDll.cmake6
-rw-r--r--third_party/abseil-cpp/README.chromium2
-rw-r--r--third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h12
-rw-r--r--third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc10
-rw-r--r--third_party/abseil-cpp/absl/debugging/BUILD.bazel24
-rw-r--r--third_party/abseil-cpp/absl/debugging/BUILD.gn34
-rw-r--r--third_party/abseil-cpp/absl/debugging/CMakeLists.txt15
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle.cc6
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle.h2
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc432
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h47
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc216
-rw-r--r--third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc9
-rw-r--r--third_party/abseil-cpp/absl/functional/any_invocable.h9
-rw-r--r--third_party/abseil-cpp/absl/functional/internal/any_invocable.h12
-rw-r--r--third_party/abseil-cpp/absl/numeric/internal/bits.h8
-rw-r--r--third_party/abseil-cpp/absl/random/distributions.h4
-rw-r--r--third_party/abseil-cpp/absl/status/BUILD.bazel36
-rw-r--r--third_party/abseil-cpp/absl/status/BUILD.gn28
-rw-r--r--third_party/abseil-cpp/absl/status/CMakeLists.txt38
-rw-r--r--third_party/abseil-cpp/absl/status/internal/status_matchers.cc68
-rw-r--r--third_party/abseil-cpp/absl/status/internal/status_matchers.h246
-rw-r--r--third_party/abseil-cpp/absl/status/status_matchers.h118
-rw-r--r--third_party/abseil-cpp/absl/status/status_matchers_test.cc119
-rw-r--r--third_party/abseil-cpp/absl/status/statusor_test.cc167
-rw-r--r--third_party/abseil-cpp/absl/strings/cord_test.cc28
-rw-r--r--third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc32
-rw-r--r--third_party/abseil-cpp/absl/strings/str_format.h2
-rw-r--r--third_party/abseil-cpp/symbols_arm64_dbg.def1
-rw-r--r--third_party/abseil-cpp/symbols_arm64_rel.def1
-rw-r--r--third_party/abseil-cpp/symbols_x64_dbg.def1
-rw-r--r--third_party/abseil-cpp/symbols_x64_rel.def1
-rw-r--r--third_party/abseil-cpp/symbols_x64_rel_asan.def1
-rw-r--r--third_party/abseil-cpp/symbols_x86_dbg.def1
-rw-r--r--third_party/abseil-cpp/symbols_x86_rel.def1
-rw-r--r--third_party/flatbuffers/DIR_METADATA5
-rw-r--r--third_party/flatbuffers/README.chromium4
-rw-r--r--third_party/flatbuffers/generated/tests/alignment_test_generated.h4
-rw-r--r--third_party/flatbuffers/generated/tests/arrays_test_generated.h4
-rw-r--r--third_party/r8/lib/r8.jarbin20883691 -> 20911061 bytes
-rw-r--r--third_party/vulkan-deps/DEPS16
-rw-r--r--third_party/vulkan-deps/glslang/src/.github/workflows/continuous_deployment.yml6
-rw-r--r--third_party/vulkan-deps/glslang/src/.github/workflows/continuous_integration.yml16
-rw-r--r--third_party/vulkan-deps/glslang/src/.github/workflows/scorecard.yml2
-rw-r--r--third_party/vulkan-deps/glslang/src/CHANGES.md14
-rw-r--r--third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSAD.frag.out1
-rw-r--r--third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSSD.frag.out1
-rw-r--r--third_party/vulkan-deps/glslang/src/glslang/MachineIndependent/ShaderLang.cpp2
-rw-r--r--third_party/vulkan-deps/glslang/src/glslang/Public/ShaderLang.h2
-rw-r--r--third_party/vulkan-deps/glslang/src/known_good.json2
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/include/spirv/spir-v.xml4
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.h1773
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp1773
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp111773
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/tools/buildHeaders/header.cpp61
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/autoroll.yml2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/bazel.yml2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/ios.yml2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/release.yml2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/scorecard.yml6
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/.github/workflows/wasm.yml2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/BUILD.gn4
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/instrument.hpp9
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/optimizer.hpp47
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/CMakeLists.txt4
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.cpp761
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.h130
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.cpp331
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.h130
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/optimizer.cpp20
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/opt/passes.h2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/val/validate_interfaces.cpp22
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/val/validate_memory.cpp3
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/test/opt/CMakeLists.txt2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/test/opt/inst_bindless_check_test.cpp5312
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/test/opt/inst_buff_addr_check_test.cpp772
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/test/val/val_interfaces_test.cpp66
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/test/val/val_memory_test.cpp208
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.cppm19
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp77
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h49
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp7
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_extension_inspection.hpp37
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp309
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp69
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp12
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_static_assertions.hpp103
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp9554
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp5
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/cgenerator.py6
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/generator.py8
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/reg.py47
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/conventions.py9
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/util.py1
-rw-r--r--third_party/vulkan-deps/vulkan-headers/src/registry/validusage.json130
-rwxr-xr-xthird_party/vulkan-deps/vulkan-headers/src/registry/vk.xml126
-rw-r--r--util/android/third_party/android_native_app_glue.c145
-rw-r--r--util/android/third_party/android_native_app_glue.h58
-rw-r--r--util/autogen/angle_features_autogen.cpp1
-rw-r--r--util/autogen/angle_features_autogen.h1
-rw-r--r--util/capture/trace_egl_loader_autogen.cpp3
-rw-r--r--util/capture/trace_egl_loader_autogen.h2
-rw-r--r--util/capture/trace_interpreter_autogen.cpp7
-rw-r--r--util/egl_loader_autogen.cpp3
-rw-r--r--util/egl_loader_autogen.h2
227 files changed, 15702 insertions, 13308 deletions
diff --git a/.gitignore b/.gitignore
index 75bf1bdc96..af83ec392f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
.DS_Store
.cipd
.gclient*
+.gcs_entries
.git_cl_description_backup
.idea/
.vs
diff --git a/Android.bp b/Android.bp
index ccfd063435..3532532af4 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4069,6 +4069,7 @@ cc_defaults {
name: "third_party_abseil_cpp_absl_debugging_demangle_internal",
srcs: [
"third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
+ "third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc",
],
defaults: [
"angle_common_auto_cflags",
diff --git a/BUILD.gn b/BUILD.gn
index 9ba42bd227..e9c3a3e79a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1244,16 +1244,10 @@ config("angle_abseil_config") {
group("angle_abseil") {
if (angle_enable_abseil) {
# When build_with_chromium=true we need to include "//third_party/abseil-cpp:absl" while
- # we can be more specific when building standalone ANGLE.
- if (build_with_chromium) {
+ # we can be more specific when building standalone non-component ANGLE.
+ # Also build the combined target when building Dawn to avoid multiply defined globals.
+ if (build_with_chromium || angle_enable_wgpu || is_component_build) {
public_deps = [ "$angle_abseil_cpp_dir:absl" ]
- } else if (angle_enable_wgpu) {
- # Use Dawn's abseil build files when Dawn will also be built. Multiple build targets
- # with the same files causes link issues in component builds.
- public_deps = [
- "$angle_dawn_dir/third_party/gn/abseil-cpp:flat_hash_map",
- "$angle_dawn_dir/third_party/gn/abseil-cpp:flat_hash_set",
- ]
} else {
public_deps = [
"$angle_abseil_cpp_dir/absl/container:flat_hash_map",
diff --git a/DEPS b/DEPS
index 766c854da7..d87c2bf168 100644
--- a/DEPS
+++ b/DEPS
@@ -43,7 +43,7 @@ vars = {
'checkout_angle_mesa': False,
# Version of Chromium our Chromium-based DEPS are mirrored from.
- 'chromium_revision': '7a22cfe5a3e75f89c6ac0c0ffeb694e739635d36',
+ 'chromium_revision': 'a749eb77d11340f8f767757cbfd227f5a787c9f9',
# We never want to checkout chromium,
# but need a dummy DEPS entry for the autoroller
'dummy_checkout_chromium': False,
@@ -88,16 +88,16 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling catapult
# and whatever else without interference from each other.
- 'catapult_revision': '4cc26001b9c8b26a9f981134a9fd837ea2248c67',
+ 'catapult_revision': '923a565b97768d3a51047c3f384f6a0d17990192',
# the commit queue can handle CLs rolling Fuchsia sdk
# and whatever else without interference from each other.
- 'fuchsia_version': 'version:20.20240430.3.1',
+ 'fuchsia_version': 'version:20.20240507.3.1',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling luci-go
# and whatever else without interference from each other.
- 'luci_go': 'git_revision:69f852c6aea2797c75712d59145efd38d7032196',
+ 'luci_go': 'git_revision:0353d07d5edeb62305e13f17d808e8523cd5bac2',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling android_sdk_build-tools_version
@@ -130,10 +130,10 @@ vars = {
# reclient CIPD package
'reclient_package': 'infra/rbe/client/',
# reclient CIPD package version
- 'reclient_version': 're_client_version:0.138.0.e854224-gomaip',
+ 'reclient_version': 're_client_version:0.141.1.29a9d3c-gomaip',
# siso CIPD package version.
- 'siso_version': 'git_revision:4524544994f4eac131378143f498ee4d0b7d1f36',
+ 'siso_version': 'git_revision:df7a992166415f66f6958744f149f724df138879',
# 'magic' text to tell depot_tools that git submodules should be accepted but
# but parity with DEPS file is expected.
@@ -141,7 +141,7 @@ vars = {
# Make Dawn skip its standalone dependencies
'dawn_standalone': False,
- 'dawn_revision': 'ed2c7c7133fddc9769311a3e2206242c30877312',
+ 'dawn_revision': 'd32858a3045a89e8c5ff919107ee76c8b103afdf',
# All of the restricted traces (large).
'checkout_angle_restricted_traces': 'checkout_angle_internal',
@@ -415,12 +415,12 @@ vars = {
deps = {
'build': {
- 'url': Var('chromium_git') + '/chromium/src/build.git@39e82ca2f8e9005de3a4152832a2bcb893eff416',
+ 'url': Var('chromium_git') + '/chromium/src/build.git@e6bad9d579ad23c516bb49a145dedae944a7e639',
'condition': 'not build_with_chromium',
},
'buildtools': {
- 'url': Var('chromium_git') + '/chromium/src/buildtools.git@9703d9137fff0cb447779de1bfebbe18ea312f89',
+ 'url': Var('chromium_git') + '/chromium/src/buildtools.git@4e0e9c73a0f26735f034f09a9cab2a5c0178536b',
'condition': 'not build_with_chromium',
},
@@ -433,7 +433,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/linux-${{arch}}',
- 'version': 'git_revision:f284b6b47039a2d7edfcbfc51f52664f82b5a789',
+ 'version': 'git_revision:df98b86690c83b81aedc909ded18857296406159',
}
],
'dep_type': 'cipd',
@@ -444,7 +444,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/mac-${{arch}}',
- 'version': 'git_revision:f284b6b47039a2d7edfcbfc51f52664f82b5a789',
+ 'version': 'git_revision:df98b86690c83b81aedc909ded18857296406159',
}
],
'dep_type': 'cipd',
@@ -466,7 +466,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/windows-amd64',
- 'version': 'git_revision:f284b6b47039a2d7edfcbfc51f52664f82b5a789',
+ 'version': 'git_revision:df98b86690c83b81aedc909ded18857296406159',
}
],
'dep_type': 'cipd',
@@ -474,12 +474,12 @@ deps = {
},
'testing': {
- 'url': '{chromium_git}/chromium/src/testing@de4f9bcc5766f6dbeb69752cbd939cf9fec3d143',
+ 'url': '{chromium_git}/chromium/src/testing@0f6fe5350b75d42f9fcecdcff573bfe2a2284b3f',
'condition': 'not build_with_chromium',
},
'third_party/abseil-cpp': {
- 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@31bdf8fec41f04dfe86976734cbad22ded4ca1f7',
+ 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@8c54b7dae4c4692f32abe9b3e8113cdf0a8842b9',
'condition': 'not build_with_chromium',
},
@@ -525,7 +525,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/android_build_tools/lint',
- 'version': 'Y5wuGPB-HfFtEVQC_0XI6n88Covm4HFDxnG0uTdV2LcC',
+ 'version': 'LKVTpK4XpEG8B7rQdSi365E60QYERcaYvf2b4kv_JugC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -536,7 +536,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/android_build_tools/manifest_merger',
- 'version': 'tz8dYQ_yBEZJRVhtzyyCjOlbOfujkHRWcYZy7419o_cC',
+ 'version': 'Uecrn-wUXzvUON7QkiZPlANRvFr6yFM05_M_S7q8IFoC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -544,7 +544,7 @@ deps = {
},
'third_party/android_deps': {
- 'url': Var('chromium_git') + '/chromium/src/third_party/android_deps@36a6c64282adbe58f343d9c0cbdf45d0e6402db3',
+ 'url': Var('chromium_git') + '/chromium/src/third_party/android_deps@691416e51262224b439bd6036af9f382034f0a1e',
'condition': 'checkout_android and not build_with_chromium',
},
@@ -656,7 +656,7 @@ deps = {
},
'third_party/depot_tools': {
- 'url': Var('chromium_git') + '/chromium/tools/depot_tools.git@4d9ad255f1ad7793ad1ed911d92cc8f5b387f492',
+ 'url': Var('chromium_git') + '/chromium/tools/depot_tools.git@84798693112c7e241d8c560ea6090e5d91a12fa2',
'condition': 'not build_with_chromium',
},
@@ -673,7 +673,7 @@ deps = {
},
'third_party/flatbuffers/src': {
- 'url': Var('chromium_git') + '/external/github.com/google/flatbuffers.git@bcb9ef187628fe07514e57756d05e6a6296f7dc5',
+ 'url': Var('chromium_git') + '/external/github.com/google/flatbuffers.git@c696275eaffec33796b5ca8755614fd9fec0a6a7',
'condition': 'checkout_android and not build_with_chromium',
},
@@ -713,7 +713,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/kotlin_stdlib',
- 'version': '05hzFgOi0AqRK3RxbSvGj2TWTFUNeLcwkJwVzwgLttUC',
+ 'version': 'bCpFA9jdfF0zeuOKYuv9n1vqxV_lykSRR1oAYrVKmFsC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -780,7 +780,7 @@ deps = {
},
'third_party/libc++abi/src': {
- 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxxabi.git@d17298ab09b44bbc95e5e59c0f285145d0e5f8a7',
+ 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxxabi.git@a37a3aa431f132b02a58656f13984d51098330a2',
'condition': 'not build_with_chromium',
},
@@ -872,7 +872,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/r8',
- 'version': 'a2gKt0z-OOG5sntIiNXVd6LFDWUuvR-rstsrF59EEnIC',
+ 'version': 'COW7cFK6pwOVeM1EEvoEXOYDwDbWVkPQDC63mlyb3m4C',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -919,7 +919,7 @@ deps = {
},
'third_party/SwiftShader': {
- 'url': Var('swiftshader_git') + '/SwiftShader@76f7f8cfea80d26fa41d51f52cfbade49ec1f838',
+ 'url': Var('swiftshader_git') + '/SwiftShader@da334852e70510d259bfa8cbaa7c5412966b2f41',
'condition': 'not build_with_chromium',
},
@@ -939,7 +939,7 @@ deps = {
},
'third_party/vulkan-deps': {
- 'url': Var('chromium_git') + '/vulkan-deps@74fe7976366424c2e7375c3520fc674cc365ce0b',
+ 'url': Var('chromium_git') + '/vulkan-deps@7e66c5e2f87e2475f6a2033af6cf37cedc7c3422',
'condition': 'not build_with_chromium',
},
@@ -959,12 +959,12 @@ deps = {
},
'tools/android': {
- 'url': Var('chromium_git') + '/chromium/src/tools/android@cc51a5ea8611565ff48db1a11c08e90d03484bd2',
+ 'url': Var('chromium_git') + '/chromium/src/tools/android@d1dc2a57c8de5154b45f0acb642f0bf138bd13e3',
'condition': 'checkout_android and not build_with_chromium',
},
'tools/clang': {
- 'url': Var('chromium_git') + '/chromium/src/tools/clang.git@14ba9b58df1e77f4802c199971c48e36f3c6bff0',
+ 'url': Var('chromium_git') + '/chromium/src/tools/clang.git@cef4fc680f01086b264558bd11ee6b434c578611',
'condition': 'not build_with_chromium',
},
@@ -995,7 +995,7 @@ deps = {
},
'tools/mb': {
- 'url': Var('chromium_git') + '/chromium/src/tools/mb@668bf195ba3390e4208cc1edc4777fa5747cb9f7',
+ 'url': Var('chromium_git') + '/chromium/src/tools/mb@42052bb1dca6eacf53d7207a74204515d64ab051',
'condition': 'not build_with_chromium',
},
@@ -1010,7 +1010,7 @@ deps = {
},
'tools/perf': {
- 'url': Var('chromium_git') + '/chromium/src/tools/perf@7ef4ff5ba36be22f641d0f08f34402f85db18492',
+ 'url': Var('chromium_git') + '/chromium/src/tools/perf@a38be675614011355e04580e5948d3a4e5d98c73',
'condition': 'not build_with_chromium',
},
@@ -1028,7 +1028,7 @@ deps = {
'packages': [
{
'package': 'skia/tools/goldctl/linux-amd64',
- 'version': '4Ox2OXGb8xipJPUsrFptKWJNJelzwWHBB3ORF1iHt94C',
+ 'version': 'EYKOn-l9uvmHtsVw_fmqj8vxXKpMyXt2sXvEJ3snsUQC',
},
],
'dep_type': 'cipd',
@@ -1039,7 +1039,7 @@ deps = {
'packages': [
{
'package': 'skia/tools/goldctl/windows-amd64',
- 'version': 'CBmdgsk0TAPgochRHBMBS9LZzdhYMOsNaJSAPvA-e-YC',
+ 'version': 'gEDTtt_VQOAPHQedAzUUVJ79216-Wz_H9A-EfvVGYyAC',
},
],
'dep_type': 'cipd',
@@ -1050,7 +1050,7 @@ deps = {
'packages': [
{
'package': 'skia/tools/goldctl/mac-amd64',
- 'version': '-H7DJpIRXUmi9ddRqVRJXThT1nlK7ns94UOnHMmeP4IC',
+ 'version': 'U1MAiUkDGvUVuk6G3tRhjjtmA3gDgW4HkyWhy8xTfrQC',
},
],
'dep_type': 'cipd',
@@ -1061,7 +1061,7 @@ deps = {
'packages': [
{
'package': 'skia/tools/goldctl/mac-arm64',
- 'version': 'FclksBOdZsrGv0dS7P163Fl3zi60z6nQCDXMNOoAYLYC',
+ 'version': 'KzRIDh9i73vYu6zVorKIEt7qrq38TuL9MZEWbf3Glw4C',
},
],
'dep_type': 'cipd',
diff --git a/build/.clang-tidy b/build/.clang-tidy
new file mode 100644
index 0000000000..b570314ef8
--- /dev/null
+++ b/build/.clang-tidy
@@ -0,0 +1,3 @@
+# TODO(crbug.com/336474469): remove this after enabling the check in parent dir.
+InheritParentConfig: true
+Checks: misc-include-cleaner
diff --git a/build/.clangd b/build/.clangd
new file mode 100644
index 0000000000..4b4eca2418
--- /dev/null
+++ b/build/.clangd
@@ -0,0 +1,4 @@
+# TODO(crbug.com/336474469): remove this after enabling the check in parent dir.
+Diagnostics:
+ UnusedIncludes: Strict
+ MissingIncludes: Strict
diff --git a/build/DEPS b/build/DEPS
new file mode 100644
index 0000000000..72647dd87d
--- /dev/null
+++ b/build/DEPS
@@ -0,0 +1,82 @@
+use_relative_paths = True
+
+deps = {
+ 'linux/debian_bullseye_amd64-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and checkout_x64',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714590045814759,
+ 'object_name': 'dec7a3a0fc5b83b909cba1b6d119077e0429a138eadef6bf5a0f2e03b1904631',
+ 'sha256sum': 'dec7a3a0fc5b83b909cba1b6d119077e0429a138eadef6bf5a0f2e03b1904631',
+ 'size_bytes': 129948576,
+ },
+ ],
+ },
+ 'linux/debian_bullseye_arm64-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and checkout_arm64',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714589974958986,
+ 'object_name': '308e23faba3174bd01accfe358467b8a40fad4db4c49ef629da30219f65a275f',
+ 'sha256sum': '308e23faba3174bd01accfe358467b8a40fad4db4c49ef629da30219f65a275f',
+ 'size_bytes': 108470444,
+ },
+ ],
+ },
+ 'linux/debian_bullseye_armhf-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and checkout_arm',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714589870087834,
+ 'object_name': 'fe81e7114b97440262bce004caf02c1514732e2fa7f99693b2836932ad1c4626',
+ 'sha256sum': 'fe81e7114b97440262bce004caf02c1514732e2fa7f99693b2836932ad1c4626',
+ 'size_bytes': 99265992,
+ },
+ ],
+ },
+ 'linux/debian_bullseye_i386-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and (checkout_x86 or checkout_x64)',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714589989387491,
+ 'object_name': 'b53933120bb08ffc38140a817e3f0f99782254a6bf9622271574fa004e8783a4',
+ 'sha256sum': 'b53933120bb08ffc38140a817e3f0f99782254a6bf9622271574fa004e8783a4',
+ 'size_bytes': 122047968,
+ },
+ ],
+ },
+ 'linux/debian_bullseye_mips64el-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and checkout_mips64',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714590006168779,
+ 'object_name': '783cb79f26736c69e8125788d95ffb65a28172349009d75188838a004280a92b',
+ 'sha256sum': '783cb79f26736c69e8125788d95ffb65a28172349009d75188838a004280a92b',
+ 'size_bytes': 103362108,
+ },
+ ],
+ },
+ 'linux/debian_bullseye_mipsel-sysroot': {
+ 'bucket': 'chrome-linux-sysroot',
+ 'condition': 'checkout_linux and checkout_mips',
+ 'dep_type': 'gcs',
+ 'objects': [
+ {
+ 'generation': 1714589936675352,
+ 'object_name': 'fcf8c3931476dd097c58f2f5d44621c7090b135e85ab56885aa4b44f4bd6cdb5',
+ 'sha256sum': 'fcf8c3931476dd097c58f2f5d44621c7090b135e85ab56885aa4b44f4bd6cdb5',
+ 'size_bytes': 96161964,
+ },
+ ],
+ },
+}
diff --git a/build/android/PRESUBMIT.py b/build/android/PRESUBMIT.py
index 56e0168f57..de7c71f209 100644
--- a/build/android/PRESUBMIT.py
+++ b/build/android/PRESUBMIT.py
@@ -94,19 +94,37 @@ def CommonChecks(input_api, output_api):
output_api,
unit_tests=[
J('.', 'list_class_verification_failures_test.py'),
+ J('.', 'convert_dex_profile_tests.py'),
+ J('gyp', 'create_unwind_table_tests.py'),
+ J('gyp', 'dex_test.py'),
+ J('gyp', 'extract_unwind_tables_tests.py'),
+ J('gyp', 'gcc_preprocess_tests.py'),
+ J('gyp', 'java_cpp_enum_tests.py'),
+ J('gyp', 'java_cpp_features_tests.py'),
+ J('gyp', 'java_cpp_strings_tests.py'),
+ J('gyp', 'java_google_api_keys_tests.py'),
+ J('gyp', 'util', 'build_utils_test.py'),
+ J('gyp', 'util', 'manifest_utils_test.py'),
+ J('gyp', 'util', 'md5_check_test.py'),
+ J('gyp', 'util', 'resource_utils_test.py'),
+ J('pylib', 'base', 'output_manager_test_case.py'),
J('pylib', 'constants', 'host_paths_unittest.py'),
J('pylib', 'gtest', 'gtest_test_instance_test.py'),
+ J('pylib', 'instrumentation', 'instrumentation_parser_test.py'),
J('pylib', 'instrumentation',
'instrumentation_test_instance_test.py'),
J('pylib', 'local', 'device', 'local_device_gtest_run_test.py'),
J('pylib', 'local', 'device',
'local_device_instrumentation_test_run_test.py'),
J('pylib', 'local', 'device', 'local_device_test_run_test.py'),
+ J('pylib', 'local', 'emulator', 'ini_test.py'),
J('pylib', 'local', 'machine',
'local_machine_junit_test_run_test.py'),
J('pylib', 'output', 'local_output_manager_test.py'),
J('pylib', 'output', 'noop_output_manager_test.py'),
J('pylib', 'output', 'remote_output_manager_test.py'),
+ J('pylib', 'results', 'flakiness_dashboard',
+ 'json_results_generator_unittest.py'),
J('pylib', 'results', 'json_results_test.py'),
J('pylib', 'utils', 'chrome_proxy_utils_test.py'),
J('pylib', 'utils', 'code_coverage_utils_test.py'),
@@ -115,12 +133,6 @@ def CommonChecks(input_api, output_api):
J('pylib', 'utils', 'dexdump_test.py'),
J('pylib', 'utils', 'gold_utils_test.py'),
J('pylib', 'utils', 'test_filter_test.py'),
- J('gyp', 'dex_test.py'),
- J('gyp', 'gcc_preprocess_tests.py'),
- J('gyp', 'util', 'build_utils_test.py'),
- J('gyp', 'util', 'manifest_utils_test.py'),
- J('gyp', 'util', 'md5_check_test.py'),
- J('gyp', 'util', 'resource_utils_test.py'),
],
env=pylib_test_env))
diff --git a/build/android/gyp/lint.py b/build/android/gyp/lint.py
index fb78de62cc..dc20d135e8 100755
--- a/build/android/gyp/lint.py
+++ b/build/android/gyp/lint.py
@@ -33,6 +33,7 @@ _DISABLED_ALWAYS = [
"MissingApplicationIcon", # False positive for non-production targets.
"NetworkSecurityConfig", # Breaks on library certificates b/269783280.
"ObsoleteLintCustomCheck", # We have no control over custom lint checks.
+ "OldTargetApi", # We sometimes need targetSdkVersion to not be latest.
"StringFormatCount", # Has false-positives.
"SwitchIntDef", # Many C++ enums are not used at all in java.
"Typos", # Strings are committed in English first and later translated.
diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py
index 8c112a7283..4ab052f7f9 100755
--- a/build/android/gyp/proguard.py
+++ b/build/android/gyp/proguard.py
@@ -66,6 +66,10 @@ _IGNORE_WARNINGS = (
# This is a banner warning and each individual file affected will have
# its own warning.
r'Warning: Invalid parameter counts in MethodParameter attributes',
+ # Full error: "Warning: InnerClasses attribute has entries missing a
+ # corresponding EnclosingMethod attribute. Such InnerClasses attribute
+ # entries are ignored."
+ r'Warning: InnerClasses attribute has entries missing a corresponding EnclosingMethod attribute', # pylint: disable=line-too-long
r'Warning in obj/third_party/androidx/androidx_test_espresso_espresso_core_java', # pylint: disable=line-too-long
r'Warning in obj/third_party/androidx/androidx_test_espresso_espresso_web_java', # pylint: disable=line-too-long
@@ -227,6 +231,8 @@ def _ParseOptions():
options.input_paths = action_helpers.parse_gn_list(options.input_paths)
options.extra_mapping_output_paths = action_helpers.parse_gn_list(
options.extra_mapping_output_paths)
+ if os.environ.get('R8_VERBOSE') == '1':
+ options.verbose = True
if options.feature_names:
if 'base' not in options.feature_names:
@@ -401,7 +407,7 @@ def _OptimizeWithR8(options, config_paths, libraries, dynamic_config_data):
cmd += sorted(base_context.input_jars)
- if options.verbose or os.environ.get('R8_VERBOSE') == '1':
+ if options.verbose:
stderr_filter = None
else:
filters = list(dex.DEFAULT_IGNORE_WARNINGS)
@@ -452,20 +458,20 @@ def _OutputKeepRules(r8_path, input_paths, classpath, targets_re_string,
build_utils.CheckOutput(cmd, print_stderr=False, fail_on_output=False)
-def _CheckForMissingSymbols(r8_path, dex_files, classpath, warnings_as_errors,
- dump_inputs, error_title):
+def _CheckForMissingSymbols(options, dex_files, error_title):
cmd = build_utils.JavaCmd()
- if dump_inputs:
+ if options.dump_inputs:
cmd += [f'-Dcom.android.tools.r8.dumpinputtodirectory={_DUMP_DIR_NAME}']
cmd += [
- '-cp', r8_path, 'com.android.tools.r8.tracereferences.TraceReferences',
+ '-cp', options.r8_path,
+ 'com.android.tools.r8.tracereferences.TraceReferences',
'--map-diagnostics:MissingDefinitionsDiagnostic', 'error', 'warning',
'--check'
]
- for path in classpath:
+ for path in options.classpath:
cmd += ['--lib', path]
for path in dex_files:
cmd += ['--source', path]
@@ -532,10 +538,12 @@ out/Release/apks/YourApk.apk > dex.txt
return stderr
try:
+ if options.verbose:
+ stderr_filter = None
build_utils.CheckOutput(cmd,
print_stdout=True,
stderr_filter=stderr_filter,
- fail_on_output=warnings_as_errors)
+ fail_on_output=options.warnings_as_errors)
except build_utils.CalledProcessError as e:
# Do not output command line because it is massive and makes the actual
# error message hard to find.
@@ -662,9 +670,7 @@ def _DoTraceReferencesChecks(options, split_contexts_by_name):
error_title = 'DEX contains references to non-existent symbols after R8.'
dex_files = sorted(c.final_output_path
for c in split_contexts_by_name.values())
- if _CheckForMissingSymbols(options.r8_path, dex_files, options.classpath,
- options.warnings_as_errors, options.dump_inputs,
- error_title):
+ if _CheckForMissingSymbols(options, dex_files, error_title):
# Failed but didn't raise due to warnings_as_errors=False
return
@@ -678,9 +684,7 @@ def _DoTraceReferencesChecks(options, split_contexts_by_name):
# run 3 of them (all, base, base+chrome).
# We could run them concurrently, to shave off 5-6 seconds, but would need
# to make sure that the order is maintained.
- if _CheckForMissingSymbols(options.r8_path, dex_files, options.classpath,
- options.warnings_as_errors, options.dump_inputs,
- error_title):
+ if _CheckForMissingSymbols(options, dex_files, error_title):
# Failed but didn't raise due to warnings_as_errors=False
return
diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn
index 810b1dafe9..2124c74e6e 100644
--- a/build/config/android/BUILD.gn
+++ b/build/config/android/BUILD.gn
@@ -64,6 +64,13 @@ config("compiler") {
}
}
+ # Disable TLSDESC for riscv64 until the Android NDK supports it. While
+ # Chromium's clang turns it on by default for Android RISC-V devices, NDK r27
+ # currently has it disabled. This can likely be removed in NDK r28.
+ if (current_cpu == "riscv64") {
+ cflags += [ "-mtls-dialect=trad" ]
+ }
+
# $compile_api_level corresponds to the API level used for the sysroot path
# calculation in //build/config/android/config.gni
if (android_64bit_target_cpu) {
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 87fc7c9882..df789fb3cd 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -716,7 +716,7 @@ if (!is_robolectric && enable_java_templates) {
# ]
# }
template("android_resources") {
- forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
+ forward_variables_from(invoker, [ "testonly" ])
_base_path = "$target_gen_dir/$target_name"
if (defined(invoker.v14_skip)) {
diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn
index df24b5f59e..1a3a7e5440 100644
--- a/build/config/clang/BUILD.gn
+++ b/build/config/clang/BUILD.gn
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/buildflag_header.gni")
import("//build/config/pch.gni")
import("//build/config/rust.gni")
import("//build/toolchain/goma.gni")
@@ -119,11 +118,6 @@ config("unsafe_buffers") {
}
}
-buildflag_header("unsafe_buffers_buildflags") {
- header = "unsafe_buffers_buildflags.h"
- flags = [ "UNSAFE_BUFFERS_WARNING_ENABLED=$clang_use_chrome_plugins" ]
-}
-
# Enables some extra Clang-specific warnings. Some third-party code won't
# compile with these so may want to remove this config.
config("extra_warnings") {
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index d39de9bc56..6efe967eb0 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -233,8 +233,8 @@ declare_args() {
(clang_use_default_sample_profile || clang_sample_profile_path != ""))
}
-assert(!(llvm_force_head_revision && use_remoteexec),
- "can't use rbe with trunk clang")
+assert(!(llvm_force_head_revision && use_remoteexec && host_os != "linux"),
+ "rbe with locally built clang only works on linux")
# default_include_dirs ---------------------------------------------------------
#
@@ -2343,13 +2343,16 @@ if (is_win) {
common_optimize_on_cflags += [ "-fno-unique-section-names" ]
}
- common_optimize_on_ldflags += [
- # Specifically tell the linker to perform optimizations.
- # See http://lwn.net/Articles/192624/ .
- # -O2 enables string tail merge optimization in lld.
- "-Wl,-O2",
- "-Wl,--gc-sections",
- ]
+ if (is_official_build) {
+ common_optimize_on_ldflags += [
+ # Specifically tell the linker to perform optimizations.
+ # See http://lwn.net/Articles/192624/.
+ # -O2 enables string tail merge optimization in lld.
+ "-Wl,-O2",
+ ]
+ }
+
+ common_optimize_on_ldflags += [ "-Wl,--gc-sections" ]
}
# We cannot rely on errno being set after math functions,
diff --git a/build/config/siso/main.star b/build/config/siso/main.star
index 0ec145b31e..81cc8b0e9f 100644
--- a/build/config/siso/main.star
+++ b/build/config/siso/main.star
@@ -39,6 +39,7 @@ def __use_large_b289968566(ctx, step_config):
"./lacros_clang_x64/obj/chrome/browser/browser/chrome_content_browser_client.o",
"./lacros_clang_x64/obj/content/browser/browser/browser_interface_binders.o",
"./lacros_clang_x64/obj/content/browser/browser/render_frame_host_impl.o",
+ "./lacros_clang_x64/obj/content/browser/browser/web_contents_impl.o",
"./lacros_clang_x64/obj/net/http/transport_security_state_generated_files/transport_security_state.o",
"./lacros_clang_x64/obj/third_party/blink/public/mojom/mojom_platform/speech_recognition_grammar.mojom.o",
"./obj/chrome/browser/ash/ash/autotest_private_api.o",
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1
index b5f7eeadd9..b3129c1b6e 100644
--- a/build/fuchsia/linux_internal.sdk.sha1
+++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@
-20.20240430.3.1
+20.20240507.3.1
diff --git a/build/fuchsia/test/ffx_emulator.py b/build/fuchsia/test/ffx_emulator.py
index d07e852096..100fcd9d0e 100644
--- a/build/fuchsia/test/ffx_emulator.py
+++ b/build/fuchsia/test/ffx_emulator.py
@@ -4,15 +4,14 @@
"""Provide helpers for running Fuchsia's `ffx emu`."""
import argparse
-import ast
import logging
import os
-import json
import random
from contextlib import AbstractContextManager
-from common import run_ffx_command, IMAGES_ROOT, INTERNAL_IMAGES_ROOT, SDK_ROOT
+from common import run_ffx_command, IMAGES_ROOT, INTERNAL_IMAGES_ROOT, \
+ DIR_SRC_ROOT
from compatible_utils import get_host_arch
@@ -60,6 +59,7 @@ class FfxEmulator(AbstractContextManager):
if not os.path.isdir(image_dir):
image_dir = os.path.join(INTERNAL_IMAGES_ROOT, prod, board)
emu_command = ['emu', 'start', image_dir, '--name', self._node_name]
+ configs = ['emu.start.timeout=300']
if not self._enable_graphics:
emu_command.append('-H')
if self._hardware_gpu:
@@ -76,52 +76,20 @@ class FfxEmulator(AbstractContextManager):
if self._device_spec:
emu_command.extend(['--device', self._device_spec])
- # TODO(https://fxbug.dev/99321): remove when ffx has native support
- # for starting emulator on arm64 host.
+ # fuchsia-sdk does not carry arm64 qemu binaries, so use overrides to
+ # allow it using the qemu-arm64 being downloaded separately.
if get_host_arch() == 'arm64':
-
- arm64_qemu_dir = os.path.join(SDK_ROOT, 'tools', 'arm64',
- 'qemu_internal')
-
- # The arm64 emulator binaries are downloaded separately, so add
- # a symlink to the expected location inside the SDK.
- if not os.path.isdir(arm64_qemu_dir):
- os.symlink(
- os.path.join(SDK_ROOT, '..', '..', 'qemu-linux-arm64'),
- arm64_qemu_dir)
-
- # Add the arm64 emulator binaries to the SDK's manifest.json file.
- sdk_manifest = os.path.join(SDK_ROOT, 'meta', 'manifest.json')
- with open(sdk_manifest, 'r+') as f:
- data = json.load(f)
- for part in data['parts']:
- if part['meta'] == 'tools/x64/qemu_internal-meta.json':
- part['meta'] = 'tools/arm64/qemu_internal-meta.json'
- break
- f.seek(0)
- json.dump(data, f)
- f.truncate()
-
- # Generate a meta file for the arm64 emulator binaries using its
- # x64 counterpart.
- qemu_arm64_meta_file = os.path.join(SDK_ROOT, 'tools', 'arm64',
- 'qemu_internal-meta.json')
- qemu_x64_meta_file = os.path.join(SDK_ROOT, 'tools', 'x64',
- 'qemu_internal-meta.json')
- with open(qemu_x64_meta_file) as f:
- data = str(json.load(f))
- qemu_arm64_meta = data.replace(r'tools/x64', 'tools/arm64')
- with open(qemu_arm64_meta_file, "w+") as f:
- json.dump(ast.literal_eval(qemu_arm64_meta), f)
+ configs.append(
+ 'sdk.overrides.qemu_internal=' +
+ os.path.join(DIR_SRC_ROOT, 'third_party', 'qemu-linux-arm64',
+ 'bin', 'qemu-system-aarch64'))
# Always use qemu for arm64 images, no matter it runs on arm64 hosts or
# x64 hosts with simulation.
if self._product.endswith('arm64'):
emu_command.extend(['--engine', 'qemu'])
- run_ffx_command(cmd=emu_command,
- timeout=310,
- configs=['emu.start.timeout=300'])
+ run_ffx_command(cmd=emu_command, timeout=310, configs=configs)
return self._node_name
diff --git a/build/install-build-deps.py b/build/install-build-deps.py
index b321fffec0..868c176018 100755
--- a/build/install-build-deps.py
+++ b/build/install-build-deps.py
@@ -233,7 +233,6 @@ def dev_list():
"libsctp-dev",
"libspeechd-dev",
"libsqlite3-dev",
- "libssl-dev",
"libsystemd-dev",
"libudev-dev",
"libva-dev",
@@ -326,6 +325,17 @@ def dev_list():
elif package_exists("lib32gcc1"):
packages.append("lib32gcc1")
+ # TODO(b/339091434): Remove this workaround once this bug is fixed. This
+ # workaround ensures the newer libssl-dev is used to prevent package conficts.
+ apt_cache_cmd = ["apt-cache", "show", "libssl-dev"]
+ output = subprocess.check_output(apt_cache_cmd).decode()
+ pattern = re.compile(r'^Version: (.+?)$', re.M)
+ versions = re.findall(pattern, output)
+ if set(versions) == {"3.2.1-3", "3.0.10-1"}:
+ packages.append("libssl-dev=3.2.1-3")
+ else:
+ packages.append("libssl-dev")
+
return packages
@@ -377,8 +387,9 @@ def lib_list():
"libxrender1",
"libxtst6",
"x11-utils",
- "xserver-xorg-core", # TODO(crbug.com/40257169): Experimental.
- "xserver-xorg-video-dummy", # TODO(crbug.com/40257169): Experimental.
+ "x11-xserver-utils",
+ "xserver-xorg-core",
+ "xserver-xorg-video-dummy",
"xvfb",
"zlib1g",
]
diff --git a/build/rust/rust_bindgen.gni b/build/rust/rust_bindgen.gni
index 23fc1ee0ec..bf110ca93c 100644
--- a/build/rust/rust_bindgen.gni
+++ b/build/rust/rust_bindgen.gni
@@ -155,13 +155,16 @@ template("rust_bindgen") {
# The `--sysroot` flag is not working as expected and gets ignored (we don't
# fully understand why, see b/328510249). But we add `-isystem` to point at
# the headers in the sysroot which are otherwise not found.
- if (is_win) {
- args += [ "-I" + rebase_path(sysroot + "/usr/include/", root_build_dir) ]
- } else {
- args += [
- "-isystem",
- rebase_path(sysroot + "/usr/include/", root_build_dir),
- ]
+ if (sysroot != "") {
+ if (is_win) {
+ args +=
+ [ "-I" + rebase_path(sysroot + "/usr/include/", root_build_dir) ]
+ } else {
+ args += [
+ "-isystem",
+ rebase_path(sysroot + "/usr/include/", root_build_dir),
+ ]
+ }
}
if (is_win) {
diff --git a/build/rust/std/fake_root/Cargo.toml.template b/build/rust/std/fake_root/Cargo.toml.template
index a6d2a59ddb..4e20ffb476 100644
--- a/build/rust/std/fake_root/Cargo.toml.template
+++ b/build/rust/std/fake_root/Cargo.toml.template
@@ -17,6 +17,7 @@ features = [
]
[dependencies.compiler_builtins]
+version = "*"
features = ["weak-intrinsics"]
[patch.crates-io]
diff --git a/build/rust/std/remap_alloc.cc b/build/rust/std/remap_alloc.cc
index 024adb236a..7604b2049f 100644
--- a/build/rust/std/remap_alloc.cc
+++ b/build/rust/std/remap_alloc.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <stdlib.h>
+
#include <algorithm>
#include <cstddef>
#include <cstdlib>
diff --git a/build/rust/tests/test_cpp_including_rust/shared_unittests.cc b/build/rust/tests/test_cpp_including_rust/shared_unittests.cc
index eb86c9228b..09a016e882 100644
--- a/build/rust/tests/test_cpp_including_rust/shared_unittests.cc
+++ b/build/rust/tests/test_cpp_including_rust/shared_unittests.cc
@@ -6,14 +6,16 @@
#include <memory>
-#include "base/allocator/buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "build/build_config.h"
+#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
#include "build/buildflag.h"
+#include "build/rust/tests/test_rust_shared_library/src/lib.rs.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "build/rust/tests/test_rust_shared_library/src/lib.rs.h"
+#if BUILDFLAG(HAS_64_BIT_POINTERS)
+#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
+#else
+#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#endif
TEST(RustSharedTest, CppCallingIntoRust_BasicFFI) {
EXPECT_EQ(7, add_two_ints_via_rust(3, 4));
diff --git a/build/rust/tests/test_cpp_including_rust/static_unittests.cc b/build/rust/tests/test_cpp_including_rust/static_unittests.cc
index b83e7e5b9b..b389cd3195 100644
--- a/build/rust/tests/test_cpp_including_rust/static_unittests.cc
+++ b/build/rust/tests/test_cpp_including_rust/static_unittests.cc
@@ -6,14 +6,16 @@
#include <memory>
-#include "base/allocator/buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "build/build_config.h"
+#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
#include "build/buildflag.h"
+#include "build/rust/tests/test_rust_static_library/src/lib.rs.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "build/rust/tests/test_rust_static_library/src/lib.rs.h"
+#if BUILDFLAG(HAS_64_BIT_POINTERS)
+#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
+#else
+#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#endif
TEST(RustStaticTest, CppCallingIntoRust_BasicFFI) {
EXPECT_EQ(7, add_two_ints_via_rust(3, 4));
diff --git a/build/rust/tests/test_rust_calling_cpp/cpp_library.cc b/build/rust/tests/test_rust_calling_cpp/cpp_library.cc
index cb0a39c370..fd0445ca65 100644
--- a/build/rust/tests/test_rust_calling_cpp/cpp_library.cc
+++ b/build/rust/tests/test_rust_calling_cpp/cpp_library.cc
@@ -4,6 +4,8 @@
#include "build/rust/tests/test_rust_calling_cpp/cpp_library.h"
+#include <cstdint>
+
int32_t mul_by_2_in_cpp_library(int32_t a) {
return a * 2;
}
diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE
index 3e1b4c209f..f121d9fdc5 100644
--- a/build/util/LASTCHANGE
+++ b/build/util/LASTCHANGE
@@ -1,2 +1,2 @@
-LASTCHANGE=39e82ca2f8e9005de3a4152832a2bcb893eff416-refs/heads/main@{#1297146}
+LASTCHANGE=e6bad9d579ad23c516bb49a145dedae944a7e639-refs/heads/main@{#1300094}
LASTCHANGE_YEAR=2024
diff --git a/build/util/LASTCHANGE.committime b/build/util/LASTCHANGE.committime
index 2a6717b2e1..d94d9acc42 100644
--- a/build/util/LASTCHANGE.committime
+++ b/build/util/LASTCHANGE.committime
@@ -1 +1 @@
-1715033649 \ No newline at end of file
+1715621680 \ No newline at end of file
diff --git a/build/util/ide_query b/build/util/ide_query
index 7f0fec7a10..0e72a72930 100755
--- a/build/util/ide_query
+++ b/build/util/ide_query
@@ -76,11 +76,14 @@ def main():
target = os.path.relpath(source, start=options.out_dir) + "^"
targets.append(target)
+ if _use_reclient(options.out_dir):
+ # b/335795623 ide_query compiler_arguments contain non-compiler arguments
+ sys.stderr.write(
+ 'ide_query won\`t work well with "use_remoteexec=true"\n'
+ 'Drop "use_remoteexec=true" from args.gn.')
+ sys.exit(1)
if options.perform_build:
- if _use_reclient(options.out_dir):
- args = ['autoninja']
- else:
- args = ['siso', 'ninja']
+ args = ['siso', 'ninja']
# use `-k=0` to build generated files as much as possible.
args.extend([
'-k=0',
@@ -90,12 +93,23 @@ def main():
])
args.extend(targets)
env = os.environ.copy()
- env['SISO_EXPERIMENTS'] = 'no-fast-deps'
- p = subprocess.run(args, cwd=repo_root, stdout=2, stderr=2, env=env)
- if p.returncode != 0:
- # TODO: report error in IdeAnalysis.Status?
- sys.stderr.write('build failed with %d\n' % p.returncode)
- # even if build fails, it should report ideanalysis back.
+ env['SISO_EXPERIMENTS'] = 'no-fast-deps,prepare-header-only'
+ with subprocess.Popen(
+ args,
+ cwd=repo_root,
+ env=env,
+ stderr=subprocess.STDOUT,
+ stdout=subprocess.PIPE,
+ universal_newlines=True
+ ) as p:
+ for line in p.stdout:
+ print(line, end='', file=sys.stderr)
+ # loop ends when program finishes, but must wait else returncode is None.
+ p.wait()
+ if p.returncode != 0:
+ # TODO: report error in IdeAnalysis.Status?
+ sys.stderr.write('build failed with %d\n' % p.returncode)
+ # even if build fails, it should report ideanalysis back.
args = ['siso', 'query', 'ideanalysis', '-C', options.out_dir]
args.extend(targets)
diff --git a/build_overrides/dawn.gni b/build_overrides/dawn.gni
index c1b38f7be7..87769af630 100644
--- a/build_overrides/dawn.gni
+++ b/build_overrides/dawn.gni
@@ -1,4 +1,5 @@
build_with_chromium = false
+build_with_angle = true
dawn_build_dxc = false
dawn_angle_dir = "//"
diff --git a/extensions/ANGLE_request_extension.txt b/extensions/ANGLE_request_extension.txt
index 88d3422e3b..56317e6d6a 100644
--- a/extensions/ANGLE_request_extension.txt
+++ b/extensions/ANGLE_request_extension.txt
@@ -85,7 +85,9 @@ Additions to the OpenGL ES 3.0 Specification
enable or disable the requestable OpenGL ES extension named <name>. If the
requested extension was not requestable or disablable, INVALID_OPERATION is
generated. Not all requestable extensions can be disabled. There is
- currently no query for disablable extensions.
+ currently no query for disablable extensions. This operation is not thread
+ safe, and the application is responsible for ensuring no other context in
+ the share group is accessed by another thread during this operation.
New State
diff --git a/extensions/EGL_ANGLE_no_error.txt b/extensions/EGL_ANGLE_no_error.txt
new file mode 100644
index 0000000000..e3746f9938
--- /dev/null
+++ b/extensions/EGL_ANGLE_no_error.txt
@@ -0,0 +1,76 @@
+Name
+
+ EGL_ANGLE_no_error
+
+Name Strings
+
+ EGL_ANGLE_no_error
+
+Contributors
+
+ Geoff Lang (geofflang 'at' google.com)
+
+Contact
+
+ Geoff Lang (geofflang 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1, April 25, 2024
+
+Number
+
+ EGL Extension #XXX
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.5
+ Specification.
+
+Overview
+
+ This extension adds a method to disable EGL validation. When validation is
+ disabled, any EGL function that would generate an error results in
+ undefined behaviour. This could include application termination.
+
+IP Status
+
+ No known claims.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ void eglSetValidationEnabledANGLE(EGLBoolean validationState)
+
+New Tokens
+
+ None.
+
+New Behavior
+
+ void eglSetValidationEnabledANGLE(EGLBoolean validationState)
+
+ EGL validation is globally enabled or disabled based on the validateState
+ parameter. When validation is disabled, any EGL function that would
+ generate an error has undefined behaviour and undefined return values.
+ The default state of validation is EGL_TRUE.
+
+Issues
+
+ None
+
+Revision History
+
+ Version 1, April 25, 2024 (Geoff Lang)
+ - Initial Draft
diff --git a/include/EGL/eglext_angle.h b/include/EGL/eglext_angle.h
index 625889ccfb..d44e3211d6 100644
--- a/include/EGL/eglext_angle.h
+++ b/include/EGL/eglext_angle.h
@@ -439,6 +439,14 @@ EGLAPI void *EGLAPIENTRY eglCopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSync sy
#define EGL_SYNC_GLOBAL_FENCE_ANGLE 0x34DE
#endif /* EGL_ANGLE_global_fence_sync */
+#ifndef EGL_ANGLE_no_error
+#define EGL_ANGLE_no_error 1
+typedef void (EGLAPIENTRYP PFNEGLSETVALIDATIONENABLEDANGLEPROC)(EGLBoolean validationState);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI void EGLAPIENTRY eglSetValidationEnabledANGLE(EGLBoolean validationState);
+#endif
+#endif /* EGL_ANGLE_no_error */
+
// clang-format on
#endif // INCLUDE_EGL_EGLEXT_ANGLE_
diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
index 0d2497540e..840edf1f96 100644
--- a/include/GLSLANG/ShaderLang.h
+++ b/include/GLSLANG/ShaderLang.h
@@ -26,7 +26,7 @@
// Version number for shader translation API.
// It is incremented every time the API changes.
-#define ANGLE_SH_VERSION 350
+#define ANGLE_SH_VERSION 351
enum ShShaderSpec
{
@@ -567,6 +567,9 @@ struct ShBuiltInResources
// The maximum complexity an expression can be when limitExpressionComplexity is turned on.
int MaxExpressionComplexity;
+ // The maximum depth of certain nestable statements (while, switch);
+ int MaxStatementDepth;
+
// The maximum depth a call stack can be.
int MaxCallStackDepth;
diff --git a/include/platform/autogen/FeaturesVk_autogen.h b/include/platform/autogen/FeaturesVk_autogen.h
index 876f85421b..581d373b7e 100644
--- a/include/platform/autogen/FeaturesVk_autogen.h
+++ b/include/platform/autogen/FeaturesVk_autogen.h
@@ -1151,6 +1151,13 @@ struct FeaturesVk : FeatureSetBase
&members, "https://anglebug.com/7899"
};
+ FeatureInfo supportsSurfaceMaintenance1 = {
+ "supportsSurfaceMaintenance1",
+ FeatureCategory::VulkanFeatures,
+ "VkDevice supports the VK_EXT_surface_maintenance1 extension",
+ &members, "https://anglebug.com/7847"
+ };
+
FeatureInfo supportsSwapchainMaintenance1 = {
"supportsSwapchainMaintenance1",
FeatureCategory::VulkanFeatures,
diff --git a/include/platform/vk_features.json b/include/platform/vk_features.json
index 8d4529dbfa..b5b557bd60 100644
--- a/include/platform/vk_features.json
+++ b/include/platform/vk_features.json
@@ -1253,6 +1253,14 @@
"issue": "https://anglebug.com/7899"
},
{
+ "name": "supports_surface_maintenance1",
+ "category": "Features",
+ "description": [
+ "VkDevice supports the VK_EXT_surface_maintenance1 extension"
+ ],
+ "issue": "https://anglebug.com/7847"
+ },
+ {
"name": "supports_swapchain_maintenance1",
"category": "Features",
"description": [
diff --git a/scripts/code_generation_hashes/ANGLE_shader_translator.json b/scripts/code_generation_hashes/ANGLE_shader_translator.json
index cf1fa51782..d08d4841cb 100644
--- a/scripts/code_generation_hashes/ANGLE_shader_translator.json
+++ b/scripts/code_generation_hashes/ANGLE_shader_translator.json
@@ -6,11 +6,11 @@
"src/compiler/translator/glslang.l":
"c47eb888a67462feb27aaab02414ae27",
"src/compiler/translator/glslang.y":
- "2441bd917904b3911597c66e57e0ec0d",
+ "ab11af1a9a62e05d3c2fb9c97952444e",
"src/compiler/translator/glslang_lex_autogen.cpp":
"e9fa08ed8de9fd90b3c9243e1b80396a",
"src/compiler/translator/glslang_tab_autogen.cpp":
- "927db5244b528a45016e9f67d8b5ccf4",
+ "6094733e705091cf3da68fc0d3b5af16",
"src/compiler/translator/glslang_tab_autogen.h":
"028bdaebf359aefbcdaafae466993ebe",
"tools/flex-bison/linux/bison.sha1":
diff --git a/scripts/code_generation_hashes/Extension_files.json b/scripts/code_generation_hashes/Extension_files.json
index 42e0b4142e..6df352232c 100644
--- a/scripts/code_generation_hashes/Extension_files.json
+++ b/scripts/code_generation_hashes/Extension_files.json
@@ -2,7 +2,7 @@
"doc/ExtensionSupport.md":
"a139fa98744132d92c5d66356efc373d",
"scripts/egl_angle_ext.xml":
- "082357171dce18d607b2f335ab6faad9",
+ "697a927b35f5f48c6a1be5cf56e9f103",
"scripts/extension_data/intel_630_linux.json":
"3b86832de6a7095f4617e273cba6d45e",
"scripts/extension_data/intel_630_win10.json":
@@ -22,7 +22,7 @@
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"src/libANGLE/gen_extensions.py":
"6ea1cb1733c4df98b527bbf2752e118b",
"src/libANGLE/gles_extensions_autogen.cpp":
diff --git a/scripts/code_generation_hashes/GL_EGL_WGL_loader.json b/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
index 88329ed2e9..d98a7ff66e 100644
--- a/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
+++ b/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
@@ -1,16 +1,16 @@
{
"scripts/egl_angle_ext.xml":
- "082357171dce18d607b2f335ab6faad9",
+ "697a927b35f5f48c6a1be5cf56e9f103",
"scripts/generate_loader.py":
"93c78a8d11323fa311fed5118fbcf083",
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"src/libEGL/egl_loader_autogen.cpp":
- "a41c368dc25edc7ceda29b17cb45b854",
+ "9ed54b9c0801cbe9b81746e79baa09bd",
"src/libEGL/egl_loader_autogen.h":
- "53615e6e7e2b5482c9ea5b7c97936a00",
+ "75923a6e28b2305e454e12a52db8c071",
"third_party/EGL-Registry/src/api/egl.xml":
"2056d54ea07156f1988ca1366bdee21a",
"third_party/OpenCL-Docs/src/xml/cl.xml":
@@ -22,17 +22,17 @@
"third_party/OpenGL-Registry/src/xml/wgl.xml":
"eae784bf4d1b983a42af5671b140b7c4",
"util/capture/trace_egl_loader_autogen.cpp":
- "292c43a5ff9df94a17d865a53fab216e",
+ "6376899e5fd7881a1538042d8c279dad",
"util/capture/trace_egl_loader_autogen.h":
- "690441996af48344dbd32a4dc1274d52",
+ "73215d434682b07aefbeba782ff32fe4",
"util/capture/trace_gles_loader_autogen.cpp":
"982333574aeef1066e65f4642264f4fc",
"util/capture/trace_gles_loader_autogen.h":
"238c42fc7905c8099f6f8f1e613e8e63",
"util/egl_loader_autogen.cpp":
- "a84edfc15d612b824a177ee62dc798d8",
+ "f79641342b64356e121cff5659c41c55",
"util/egl_loader_autogen.h":
- "953916ce1947d7a08b5afd2a67e5096b",
+ "6a9a0a41347d85c566418d772cbb9d66",
"util/gles_loader_autogen.cpp":
"9b770ec4872ea4e4329e4f5048b18249",
"util/gles_loader_autogen.h":
diff --git a/scripts/code_generation_hashes/GL_EGL_entry_points.json b/scripts/code_generation_hashes/GL_EGL_entry_points.json
index 7a619c02ad..e4eca7e117 100644
--- a/scripts/code_generation_hashes/GL_EGL_entry_points.json
+++ b/scripts/code_generation_hashes/GL_EGL_entry_points.json
@@ -1,20 +1,20 @@
{
"scripts/egl_angle_ext.xml":
- "082357171dce18d607b2f335ab6faad9",
+ "697a927b35f5f48c6a1be5cf56e9f103",
"scripts/entry_point_packed_egl_enums.json":
"a72ae855c6b403912103b519139951a1",
"scripts/entry_point_packed_gl_enums.json":
"57a3a729fd25032bc336f4b6a55bc238",
"scripts/generate_entry_points.py":
- "359649efbbc776d91eb29bc1d78c737c",
+ "7e554c0ecbbe527501e083b9e0f720b7",
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"src/common/entry_points_enum_autogen.cpp":
- "edbbfb5ae04c63210115ad3a28df5e60",
+ "96fad45d19b9fe517fff0ca858a92eff",
"src/common/entry_points_enum_autogen.h":
- "34028b779cd515d42aa1f6abe5c063c4",
+ "aff1240d8f1d4689f9d4ed886e91866a",
"src/common/frame_capture_utils_autogen.cpp":
"1984fe7b49b4d8fce4decbca540f71e0",
"src/common/frame_capture_utils_autogen.h":
@@ -40,9 +40,9 @@
"src/libANGLE/Context_gles_ext_autogen.h":
"f7a487874b1a2685321654524baeb289",
"src/libANGLE/capture/capture_egl_autogen.cpp":
- "13734e23717732184a23fe7c872a0016",
+ "330861bd692183c0973402af31adbcd6",
"src/libANGLE/capture/capture_egl_autogen.h":
- "bd88ae42c440c2782a6ee1d9ca1ede56",
+ "c6027dcc52d91e3eb343de409443aa38",
"src/libANGLE/capture/capture_gl_1_autogen.cpp":
"b99498721b4a7b1094ce7e37f9a7481c",
"src/libANGLE/capture/capture_gl_1_autogen.h":
@@ -90,7 +90,7 @@
"src/libANGLE/validationCL_autogen.h":
"0022d0cdb6a9e2ef4a59b71164f62333",
"src/libANGLE/validationEGL_autogen.h":
- "4026d8dc0b611e652ac884c1dbfc1a48",
+ "b5d9cb7b2ab70a2418e481b893c9e77d",
"src/libANGLE/validationES1_autogen.h":
"06762456388a02b9258d6262c1bf4a1b",
"src/libANGLE/validationES2_autogen.h":
@@ -112,15 +112,15 @@
"src/libANGLE/validationGL4_autogen.h":
"7057fa33057b1d857f902e9db3f14535",
"src/libEGL/libEGL_autogen.cpp":
- "af9d60a668dff7f38870d7c4b95f5893",
+ "9f99287bd11f1080c4419406a84e43f8",
"src/libEGL/libEGL_autogen.def":
- "cdae26a50a3dd1a78dc2b74811a32c32",
+ "8725ff26952f20ef27ad1dbc8b10d250",
"src/libGLESv2/cl_stubs_autogen.h":
"90de40afa78b7574558f8514f53dbab8",
"src/libGLESv2/egl_context_lock_autogen.h":
- "a4294db0bc9c9c69b6dc77776925eb3f",
+ "4ec65fa4d7009d80d8a5173f6f18af4d",
"src/libGLESv2/egl_ext_stubs_autogen.h":
- "253cf14df6bc11adb825fa34ca9bd62e",
+ "4ee0192e22137991ece292e0d4c7ee21",
"src/libGLESv2/egl_get_labeled_object_data.json":
"2f4148b2ddf34e62670e32c5e6da4937",
"src/libGLESv2/egl_stubs_autogen.h":
@@ -130,13 +130,13 @@
"src/libGLESv2/entry_points_cl_autogen.h":
"dde2f94c3004874a7da995dae69da811",
"src/libGLESv2/entry_points_egl_autogen.cpp":
- "8348d52dadf5ad12208a4d93864000c3",
+ "848e275bab1115a6e6e8b20a5f7c9672",
"src/libGLESv2/entry_points_egl_autogen.h":
"3bc7a8df9deadd7cfd615d0cfad0c6a8",
"src/libGLESv2/entry_points_egl_ext_autogen.cpp":
- "0409df0bdbbc0fb32a88d5f23a2cb7a5",
+ "cb391d7b18f08bfdac58d19a1339f71a",
"src/libGLESv2/entry_points_egl_ext_autogen.h":
- "2d005f4cb16dcdd61e08cfec97a12f86",
+ "a1084e21a2abeeff68758a5d874452a7",
"src/libGLESv2/entry_points_gl_1_autogen.cpp":
"b40ded56c7002839bce50301ffbc7bc4",
"src/libGLESv2/entry_points_gl_1_autogen.h":
@@ -180,11 +180,11 @@
"src/libGLESv2/libGLESv2_autogen.cpp":
"ea854982cac0ba0986c7dcf36ffdb28b",
"src/libGLESv2/libGLESv2_autogen.def":
- "0874e55603329e8a561108af94020dc7",
+ "da4184855fbaa9023036994c02117a8c",
"src/libGLESv2/libGLESv2_no_capture_autogen.def":
- "aa82d519d477f47d325e4e53d54e7957",
+ "3da2227dcbd067ae48ea43ae3d06e3d4",
"src/libGLESv2/libGLESv2_with_capture_autogen.def":
- "c456b3a075f312cc38aa75606c31a8a0",
+ "3546e2acc49ad6532fe7c485c10800e0",
"src/libOpenCL/libOpenCL_autogen.cpp":
"10849978c910dc1af5dd4f0c815d1581",
"third_party/EGL-Registry/src/api/egl.xml":
diff --git a/scripts/code_generation_hashes/GLenum_value_to_string_map.json b/scripts/code_generation_hashes/GLenum_value_to_string_map.json
index 5c4890941a..5512923268 100644
--- a/scripts/code_generation_hashes/GLenum_value_to_string_map.json
+++ b/scripts/code_generation_hashes/GLenum_value_to_string_map.json
@@ -4,7 +4,7 @@
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"src/common/gl_enum_utils_autogen.cpp":
"745c4be051eb3d9c93c2116180afb3ca",
"src/common/gl_enum_utils_autogen.h":
diff --git a/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json b/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
index e2cae3d9d7..f61e921dff 100644
--- a/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
+++ b/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
@@ -10,5 +10,5 @@
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
"96ac9e08704b7a086f7c8db5d213de2b",
"third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml":
- "a03bcee36a94c6430abe65c367c8862f"
+ "c63dc0947e72e4b6ee50b5c86c728903"
}
diff --git a/scripts/code_generation_hashes/interpreter_utils.json b/scripts/code_generation_hashes/interpreter_utils.json
index d091980f79..e6ab7a7b7c 100644
--- a/scripts/code_generation_hashes/interpreter_utils.json
+++ b/scripts/code_generation_hashes/interpreter_utils.json
@@ -1,12 +1,12 @@
{
"scripts/egl_angle_ext.xml":
- "082357171dce18d607b2f335ab6faad9",
+ "697a927b35f5f48c6a1be5cf56e9f103",
"scripts/gen_interpreter_utils.py":
"10ba16ee78604763fc883525dd275de8",
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"third_party/EGL-Registry/src/api/egl.xml":
"2056d54ea07156f1988ca1366bdee21a",
"third_party/OpenCL-Docs/src/xml/cl.xml":
@@ -20,5 +20,5 @@
"util/capture/trace_fixture.h":
"b202afa4540cdd8113ba8012d6c3ebd6",
"util/capture/trace_interpreter_autogen.cpp":
- "d9f47c706cd52ec11c99dbed27d7c663"
+ "92b3bb6cfb80d36c22ef80e45ed47136"
}
diff --git a/scripts/code_generation_hashes/proc_table.json b/scripts/code_generation_hashes/proc_table.json
index b6eb0075bb..ee818513f3 100644
--- a/scripts/code_generation_hashes/proc_table.json
+++ b/scripts/code_generation_hashes/proc_table.json
@@ -1,16 +1,16 @@
{
"scripts/egl_angle_ext.xml":
- "082357171dce18d607b2f335ab6faad9",
+ "697a927b35f5f48c6a1be5cf56e9f103",
"scripts/gen_proc_table.py":
"073351265b085943f816498cecaa281c",
"scripts/gl_angle_ext.xml":
"197e07a917d5bba6dfa2840fb1b58e7e",
"scripts/registry_xml.py":
- "49c3c48df34c6acb1de031090ac18075",
+ "eb23ab1ec2c7c8d78aefbfe0aa86fc4a",
"src/libGLESv2/proc_table_cl_autogen.cpp":
"ed003b0f041aaaa35b67d3fe07e61f91",
"src/libGLESv2/proc_table_egl_autogen.cpp":
- "f1fffa4b64d9278516a4c7ba47eeb68a",
+ "de43858d4aa346510eab9f6e30f80b98",
"src/libGLESv2/proc_table_glx_autogen.cpp":
"d7fa0ac22e469242c5354eee4e88a4d6",
"src/libGLESv2/proc_table_wgl_autogen.cpp":
diff --git a/scripts/egl_angle_ext.xml b/scripts/egl_angle_ext.xml
index 1b9178c4ef..e323cb717a 100644
--- a/scripts/egl_angle_ext.xml
+++ b/scripts/egl_angle_ext.xml
@@ -149,6 +149,10 @@
<proto>void <name>eglWaitUntilWorkScheduledANGLE</name></proto>
<param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
</command>
+ <command>
+ <proto>void <name>eglSetValidationEnabledANGLE</name></proto>
+ <param><ptype>EGLBoolean</ptype> <name>validationState</name></param>
+ </command>
</commands>
<!-- SECTION: ANGLE extension interface definitions -->
<extensions>
@@ -513,6 +517,11 @@
<enum name="EGL_D3D_TEXTURE_ANGLE"/>
</require>
</extension>
+ <extension name="EGL_ANGLE_no_error" supported="egl">
+ <require>
+ <command name="eglSetValidationEnabledANGLE"/>
+ </require>
+ </extension>
</extensions>
<!-- SECTION: EGL enumerant (token) definitions. -->
diff --git a/scripts/generate_entry_points.py b/scripts/generate_entry_points.py
index 31f54940e7..0bf5224fa2 100755
--- a/scripts/generate_entry_points.py
+++ b/scripts/generate_entry_points.py
@@ -464,7 +464,14 @@ void EGLAPIENTRY EGL_{name}({params})
{{
ANGLE_EGL_SCOPED_CONTEXT_LOCK({name}, thread{comma_if_needed_context_lock}{internal_context_lock_params});
- ANGLE_EGL_VALIDATE_VOID(thread, {name}, {labeled_object}, {internal_params});
+ if (IsEGLValidationEnabled())
+ {{
+ ANGLE_EGL_VALIDATE_VOID(thread, {name}, {labeled_object}, {internal_params});
+ }}
+ else
+ {{
+ {attrib_map_init}
+ }}
{name}(thread{comma_if_needed}{internal_params});
}}
@@ -489,7 +496,14 @@ TEMPLATE_EGL_ENTRY_POINT_WITH_RETURN = """\
{{
ANGLE_EGL_SCOPED_CONTEXT_LOCK({name}, thread{comma_if_needed_context_lock}{internal_context_lock_params});
- ANGLE_EGL_VALIDATE(thread, {name}, {labeled_object}, {return_type}{comma_if_needed}{internal_params});
+ if (IsEGLValidationEnabled())
+ {{
+ ANGLE_EGL_VALIDATE(thread, {name}, {labeled_object}, {return_type}{comma_if_needed}{internal_params});
+ }}
+ else
+ {{
+ {attrib_map_init}
+ }}
returnValue = {name}(thread{comma_if_needed}{internal_params});
}}
@@ -512,7 +526,14 @@ TEMPLATE_EGL_ENTRY_POINT_WITH_RETURN_NO_LOCKS = """\
{packed_gl_enum_conversions}
- ANGLE_EGL_VALIDATE(thread, {name}, {labeled_object}, {return_type}{comma_if_needed}{internal_params});
+ if (IsEGLValidationEnabled())
+ {{
+ ANGLE_EGL_VALIDATE(thread, {name}, {labeled_object}, {return_type}{comma_if_needed}{internal_params});
+ }}
+ else
+ {{
+ {attrib_map_init}
+ }}
returnValue = {name}(thread{comma_if_needed}{internal_params});
@@ -998,6 +1019,7 @@ FORMAT_DICT = {
"GLushort": "%u",
"int": "%d",
# EGL-specific types
+ "EGLBoolean": "%u",
"EGLConfig": POINTER_FORMAT,
"EGLContext": POINTER_FORMAT,
"EGLDisplay": POINTER_FORMAT,
@@ -1906,6 +1928,13 @@ def format_entry_point_def(api, command_node, cmd_name, proto, params, cmd_packe
packed_gl_enum_conversions = []
+ # egl::AttributeMap objects do not convert the raw input parameters to a map until they are
+ # validated because it is possible to have unterminated attribute lists if one of the
+ # attributes is invalid.
+ # When validation is disabled, force the conversion from attribute list to map using
+ # initializeWithoutValidation.
+ attrib_map_init = []
+
for param in params:
name = just_the_name(param)
@@ -1917,6 +1946,9 @@ def format_entry_point_def(api, command_node, cmd_name, proto, params, cmd_packe
internal_type + ">(" + name + ");"
]
+ if 'AttributeMap' in internal_type:
+ attrib_map_init.append(internal_name + ".initializeWithoutValidation();")
+
pass_params = [param_print_argument(api, command_node, param) for param in params]
format_params = [param_format_string(param) for param in params]
return_type = proto[:-len(cmd_name)].strip()
@@ -1939,6 +1971,8 @@ def format_entry_point_def(api, command_node, cmd_name, proto, params, cmd_packe
", ".join(params),
"internal_params":
", ".join(internal_params),
+ "attrib_map_init":
+ "\n".join(attrib_map_init),
"context_private_internal_params":
", ".join(
["context->getMutablePrivateState()", "context->getMutablePrivateStateCache()"] +
@@ -3129,11 +3163,10 @@ def get_unlocked_tail_call(api, cmd_name):
# native EGL function in tail call
#
if (cmd_name in [
- 'eglCreateSyncKHR', 'eglDestroySurface', 'eglMakeCurrent', 'eglReleaseThread',
- 'eglCreateWindowSurface', 'eglCreatePlatformWindowSurface',
- 'eglCreatePlatformWindowSurfaceEXT', 'eglPrepareSwapBuffersANGLE',
- 'eglSwapBuffersWithFrameTokenANGLE', 'glFinishFenceNV', 'glCompileShader',
- 'glLinkProgram'
+ 'eglDestroySurface', 'eglMakeCurrent', 'eglReleaseThread', 'eglCreateWindowSurface',
+ 'eglCreatePlatformWindowSurface', 'eglCreatePlatformWindowSurfaceEXT',
+ 'eglPrepareSwapBuffersANGLE', 'eglSwapBuffersWithFrameTokenANGLE', 'glFinishFenceNV',
+ 'glCompileShader', 'glLinkProgram'
] or cmd_name.startswith('glTexImage2D') or cmd_name.startswith('glTexImage3D') or
cmd_name.startswith('glTexSubImage2D') or cmd_name.startswith('glTexSubImage3D') or
cmd_name.startswith('glCompressedTexImage2D') or
diff --git a/scripts/registry_xml.py b/scripts/registry_xml.py
index b079d64876..ed55ba4ec9 100644
--- a/scripts/registry_xml.py
+++ b/scripts/registry_xml.py
@@ -329,6 +329,7 @@ supported_egl_extensions = [
"EGL_ANGLE_ggp_stream_descriptor",
"EGL_ANGLE_metal_create_context_ownership_identity",
"EGL_ANGLE_metal_shared_event_sync",
+ "EGL_ANGLE_no_error",
"EGL_ANGLE_power_preference",
"EGL_ANGLE_prepare_swap_buffers",
"EGL_ANGLE_program_cache_control",
diff --git a/src/common/entry_points_enum_autogen.cpp b/src/common/entry_points_enum_autogen.cpp
index b67bc6aefa..0d67ff8953 100644
--- a/src/common/entry_points_enum_autogen.cpp
+++ b/src/common/entry_points_enum_autogen.cpp
@@ -434,6 +434,8 @@ const char *GetEntryPointName(EntryPoint ep)
return "eglSetBlobCacheFuncsANDROID";
case EntryPoint::EGLSetDamageRegionKHR:
return "eglSetDamageRegionKHR";
+ case EntryPoint::EGLSetValidationEnabledANGLE:
+ return "eglSetValidationEnabledANGLE";
case EntryPoint::EGLSignalSyncKHR:
return "eglSignalSyncKHR";
case EntryPoint::EGLStreamAttribKHR:
diff --git a/src/common/entry_points_enum_autogen.h b/src/common/entry_points_enum_autogen.h
index 70bbb9cf22..0baf7b4331 100644
--- a/src/common/entry_points_enum_autogen.h
+++ b/src/common/entry_points_enum_autogen.h
@@ -223,6 +223,7 @@ enum class EntryPoint
EGLReleaseThread,
EGLSetBlobCacheFuncsANDROID,
EGLSetDamageRegionKHR,
+ EGLSetValidationEnabledANGLE,
EGLSignalSyncKHR,
EGLStreamAttribKHR,
EGLStreamConsumerAcquireKHR,
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
index 6d65bf543d..db725738b0 100644
--- a/src/compiler/translator/Compiler.cpp
+++ b/src/compiler/translator/Compiler.cpp
@@ -1396,6 +1396,7 @@ void TCompiler::setResourceString()
<< ":EXT_draw_buffers:" << mResources.EXT_draw_buffers
<< ":FragmentPrecisionHigh:" << mResources.FragmentPrecisionHigh
<< ":MaxExpressionComplexity:" << mResources.MaxExpressionComplexity
+ << ":MaxStatementDepth:" << mResources.MaxStatementDepth
<< ":MaxCallStackDepth:" << mResources.MaxCallStackDepth
<< ":MaxFunctionParameters:" << mResources.MaxFunctionParameters
<< ":EXT_blend_func_extended:" << mResources.EXT_blend_func_extended
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index ffdfdab548..5ccd01f9f7 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -309,6 +309,7 @@ TParseContext::TParseContext(TSymbolTable &symt,
mMaxExpressionComplexity(static_cast<size_t>(options.limitExpressionComplexity
? resources.MaxExpressionComplexity
: std::numeric_limits<size_t>::max())),
+ mMaxStatementDepth(static_cast<size_t>(resources.MaxStatementDepth)),
mMinProgramTexelOffset(resources.MinProgramTexelOffset),
mMaxProgramTexelOffset(resources.MaxProgramTexelOffset),
mMinProgramTextureGatherOffset(resources.MinProgramTextureGatherOffset),
@@ -1365,6 +1366,14 @@ bool TParseContext::checkIsValidTypeAndQualifierForArray(const TSourceLoc &index
return checkIsValidQualifierForArray(indexLocation, elementType);
}
+void TParseContext::checkNestingLevel(const TSourceLoc &line)
+{
+ if (static_cast<size_t>(mLoopNestingLevel) > mMaxStatementDepth)
+ {
+ error(line, "statement is too deeply nested", "");
+ }
+}
+
// Enforce non-initializer type/qualifier rules.
void TParseContext::checkCanBeDeclaredWithoutInitializer(const TSourceLoc &line,
const ImmutableString &identifier,
diff --git a/src/compiler/translator/ParseContext.h b/src/compiler/translator/ParseContext.h
index 50f6794ffc..f30fb7ce03 100644
--- a/src/compiler/translator/ParseContext.h
+++ b/src/compiler/translator/ParseContext.h
@@ -82,7 +82,11 @@ class TParseContext : angle::NonCopyable
void setLoopNestingLevel(int loopNestintLevel) { mLoopNestingLevel = loopNestintLevel; }
- void incrLoopNestingLevel() { ++mLoopNestingLevel; }
+ void incrLoopNestingLevel(const TSourceLoc &line)
+ {
+ ++mLoopNestingLevel;
+ checkNestingLevel(line);
+ }
void decrLoopNestingLevel() { --mLoopNestingLevel; }
void incrSwitchNestingLevel() { ++mSwitchNestingLevel; }
@@ -521,6 +525,9 @@ class TParseContext : angle::NonCopyable
ShShaderOutput getOutputType() const { return mOutputType; }
+ size_t getMaxExpressionComplexity() const { return mMaxExpressionComplexity; }
+ size_t getMaxStatementDepth() const { return mMaxStatementDepth; }
+
// TODO(jmadill): make this private
TSymbolTable &symbolTable; // symbol table that goes with the language currently being parsed
@@ -550,6 +557,8 @@ class TParseContext : angle::NonCopyable
const TType *type,
TVariable **variable);
+ void checkNestingLevel(const TSourceLoc &line);
+
void checkCanBeDeclaredWithoutInitializer(const TSourceLoc &line,
const ImmutableString &identifier,
TType *type);
@@ -763,6 +772,7 @@ class TParseContext : angle::NonCopyable
angle::pp::Preprocessor mPreprocessor;
void *mScanner;
const size_t mMaxExpressionComplexity;
+ const size_t mMaxStatementDepth;
int mMinProgramTexelOffset;
int mMaxProgramTexelOffset;
diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp
index fd25182cb2..206f5c7118 100644
--- a/src/compiler/translator/ShaderLang.cpp
+++ b/src/compiler/translator/ShaderLang.cpp
@@ -249,6 +249,7 @@ void InitBuiltInResources(ShBuiltInResources *resources)
resources->HashFunction = nullptr;
resources->MaxExpressionComplexity = 256;
+ resources->MaxStatementDepth = 256;
resources->MaxCallStackDepth = 256;
resources->MaxFunctionParameters = 1024;
diff --git a/src/compiler/translator/glslang.y b/src/compiler/translator/glslang.y
index 8323f70ad3..95867f7ff7 100644
--- a/src/compiler/translator/glslang.y
+++ b/src/compiler/translator/glslang.y
@@ -1624,16 +1624,16 @@ condition
;
iteration_statement
- : WHILE LEFT_PAREN { context->symbolTable.push(); context->incrLoopNestingLevel(); } condition RIGHT_PAREN statement_no_new_scope {
+ : WHILE LEFT_PAREN { context->symbolTable.push(); context->incrLoopNestingLevel(@1); } condition RIGHT_PAREN statement_no_new_scope {
context->symbolTable.pop();
$$ = context->addLoop(ELoopWhile, 0, $4, 0, $6, @1);
context->decrLoopNestingLevel();
}
- | DO { context->incrLoopNestingLevel(); } statement_with_scope WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON {
+ | DO { context->incrLoopNestingLevel(@1); } statement_with_scope WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON {
$$ = context->addLoop(ELoopDoWhile, 0, $6, 0, $3, @4);
context->decrLoopNestingLevel();
}
- | FOR LEFT_PAREN { context->symbolTable.push(); context->incrLoopNestingLevel(); } for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope {
+ | FOR LEFT_PAREN { context->symbolTable.push(); context->incrLoopNestingLevel(@1); } for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope {
context->symbolTable.pop();
$$ = context->addLoop(ELoopFor, $4, $5.node1, reinterpret_cast<TIntermTyped*>($5.node2), $7, @1);
context->decrLoopNestingLevel();
diff --git a/src/compiler/translator/glslang_tab_autogen.cpp b/src/compiler/translator/glslang_tab_autogen.cpp
index 6064c50d26..4a419a72cd 100644
--- a/src/compiler/translator/glslang_tab_autogen.cpp
+++ b/src/compiler/translator/glslang_tab_autogen.cpp
@@ -4564,7 +4564,7 @@ yyreduce:
case 307: /* $@8: %empty */
{
context->symbolTable.push();
- context->incrLoopNestingLevel();
+ context->incrLoopNestingLevel((yylsp[-1]));
}
break;
@@ -4581,7 +4581,7 @@ yyreduce:
case 309: /* $@9: %empty */
{
- context->incrLoopNestingLevel();
+ context->incrLoopNestingLevel((yylsp[0]));
}
break;
@@ -4598,7 +4598,7 @@ yyreduce:
case 311: /* $@10: %empty */
{
context->symbolTable.push();
- context->incrLoopNestingLevel();
+ context->incrLoopNestingLevel((yylsp[-1]));
}
break;
diff --git a/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp b/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp
index a3dc0567a6..49eaec47c3 100644
--- a/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp
+++ b/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp
@@ -635,7 +635,7 @@ class Separator : public TIntermRebuild
PostResult visitConstantUnionPost(TIntermConstantUnion &node) override
{
const TType &type = node.getType();
- if (!type.isScalar())
+ if (!type.isScalar() && !type.isVector() && !type.isMatrix())
{
pushBinding(node, node);
}
diff --git a/src/libANGLE/Caps.cpp b/src/libANGLE/Caps.cpp
index 17288dce48..659be9a991 100644
--- a/src/libANGLE/Caps.cpp
+++ b/src/libANGLE/Caps.cpp
@@ -1410,6 +1410,7 @@ std::vector<std::string> ClientExtensions::getStrings() const
InsertExtensionString("EGL_KHR_debug", debug, &extensionStrings);
InsertExtensionString("EGL_ANGLE_feature_control", featureControlANGLE, &extensionStrings);
InsertExtensionString("EGL_ANGLE_display_power_preference", displayPowerPreferenceANGLE, &extensionStrings);
+ InsertExtensionString("EGL_ANGLE_no_error", noErrorANGLE, &extensionStrings);
// clang-format on
return extensionStrings;
diff --git a/src/libANGLE/Caps.h b/src/libANGLE/Caps.h
index 2dbd0ac037..5cfe3a88bd 100644
--- a/src/libANGLE/Caps.h
+++ b/src/libANGLE/Caps.h
@@ -810,6 +810,9 @@ struct ClientExtensions
// EGL_ANGLE_display_power_preference
bool displayPowerPreferenceANGLE = false;
+
+ // EGL_ANGLE_no_error
+ bool noErrorANGLE = false;
};
} // namespace egl
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 1b23bd94a8..5eda734ca6 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -850,7 +850,7 @@ egl::Error Context::onDestroy(const egl::Display *display)
mDefaultFramebuffer->onDestroy(this);
mDefaultFramebuffer.reset();
- for (auto fence : mFenceNVMap)
+ for (auto fence : UnsafeResourceMapIter(mFenceNVMap))
{
if (fence.second)
{
@@ -860,7 +860,7 @@ egl::Error Context::onDestroy(const egl::Display *display)
}
mFenceNVMap.clear();
- for (auto query : mQueryMap)
+ for (auto query : UnsafeResourceMapIter(mQueryMap))
{
if (query.second != nullptr)
{
@@ -869,7 +869,7 @@ egl::Error Context::onDestroy(const egl::Display *display)
}
mQueryMap.clear();
- for (auto vertexArray : mVertexArrayMap)
+ for (auto vertexArray : UnsafeResourceMapIter(mVertexArrayMap))
{
if (vertexArray.second)
{
@@ -878,7 +878,7 @@ egl::Error Context::onDestroy(const egl::Display *display)
}
mVertexArrayMap.clear();
- for (auto transformFeedback : mTransformFeedbackMap)
+ for (auto transformFeedback : UnsafeResourceMapIter(mTransformFeedbackMap))
{
if (transformFeedback.second != nullptr)
{
@@ -3618,7 +3618,8 @@ void Context::beginTransformFeedback(PrimitiveMode primitiveMode)
bool Context::hasActiveTransformFeedback(ShaderProgramID program) const
{
- for (auto pair : mTransformFeedbackMap)
+ // Note: transform feedback objects are private to context and so the map doesn't need locking
+ for (auto pair : UnsafeResourceMapIter(mTransformFeedbackMap))
{
if (pair.second != nullptr && pair.second->hasBoundProgram(program))
{
@@ -4498,7 +4499,8 @@ void Context::updateCaps()
(mState.isWebGL() || mState.hasRobustAccess()));
// Cache this in the VertexArrays. They need to check it in state change notifications.
- for (auto vaoIter : mVertexArrayMap)
+ // Note: vertex array objects are private to context and so the map doesn't need locking
+ for (auto vaoIter : UnsafeResourceMapIter(mVertexArrayMap))
{
VertexArray *vao = vaoIter.second;
vao->setBufferAccessValidationEnabled(mBufferAccessValidationEnabled);
diff --git a/src/libANGLE/Display.cpp b/src/libANGLE/Display.cpp
index d81a60aafc..9ebd571e84 100644
--- a/src/libANGLE/Display.cpp
+++ b/src/libANGLE/Display.cpp
@@ -2178,6 +2178,7 @@ static ClientExtensions GenerateClientExtensions()
extensions.debug = true;
extensions.featureControlANGLE = true;
extensions.deviceQueryEXT = true;
+ extensions.noErrorANGLE = true;
return extensions;
}
diff --git a/src/libANGLE/ProgramExecutable.cpp b/src/libANGLE/ProgramExecutable.cpp
index 6c6ce121d1..d7a06c2960 100644
--- a/src/libANGLE/ProgramExecutable.cpp
+++ b/src/libANGLE/ProgramExecutable.cpp
@@ -745,6 +745,14 @@ void ProgramExecutable::destroy(const Context *context)
{
ASSERT(mImplementation != nullptr);
+ for (SharedProgramExecutable &executable : mPPOProgramExecutables)
+ {
+ if (executable)
+ {
+ UninstallExecutable(context, &executable);
+ }
+ }
+
mImplementation->destroy(context);
SafeDelete(mImplementation);
}
diff --git a/src/libANGLE/ProgramExecutable.h b/src/libANGLE/ProgramExecutable.h
index d7a9252610..519b115f3d 100644
--- a/src/libANGLE/ProgramExecutable.h
+++ b/src/libANGLE/ProgramExecutable.h
@@ -993,6 +993,10 @@ class ProgramExecutable final : public angle::Subject
// been modified.
UniformBufferBindingArray<ProgramUniformBlockMask> mUniformBufferBindingToUniformBlocks;
+ // PPO only: installed executables from the programs. Note that these may be different from the
+ // programs' current executables, because they may have been unsuccessfully relinked.
+ ShaderMap<SharedProgramExecutable> mPPOProgramExecutables;
+
// Cache for sampler validation
mutable Optional<bool> mCachedValidateSamplersResult;
diff --git a/src/libANGLE/ProgramPipeline.cpp b/src/libANGLE/ProgramPipeline.cpp
index 6d1e312f74..9d7cd66a6c 100644
--- a/src/libANGLE/ProgramPipeline.cpp
+++ b/src/libANGLE/ProgramPipeline.cpp
@@ -66,10 +66,11 @@ void ProgramPipelineState::useProgramStage(const Context *context,
{
mPrograms[shaderType] = shaderProgram;
// Install the program executable, if not already
- if (shaderProgram->getSharedExecutable().get() != mProgramExecutables[shaderType].get())
+ if (shaderProgram->getSharedExecutable().get() !=
+ mExecutable->mPPOProgramExecutables[shaderType].get())
{
InstallExecutable(context, shaderProgram->getSharedExecutable(),
- &mProgramExecutables[shaderType]);
+ &mExecutable->mPPOProgramExecutables[shaderType]);
}
shaderProgram->addRef();
}
@@ -79,11 +80,11 @@ void ProgramPipelineState::useProgramStage(const Context *context,
// given stage, it is as if the pipeline object has no programmable stage configured for the
// indicated shader stage.
mPrograms[shaderType] = nullptr;
- UninstallExecutable(context, &mProgramExecutables[shaderType]);
+ UninstallExecutable(context, &mExecutable->mPPOProgramExecutables[shaderType]);
}
programObserverBinding->bind(mPrograms[shaderType]);
- programExecutableObserverBinding->bind(mProgramExecutables[shaderType].get());
+ programExecutableObserverBinding->bind(mExecutable->mPPOProgramExecutables[shaderType].get());
}
void ProgramPipelineState::useProgramStages(
@@ -175,14 +176,6 @@ void ProgramPipeline::onDestroy(const Context *context)
getImplementation()->destroy(context);
UninstallExecutable(context, &mState.mExecutable);
- for (SharedProgramExecutable &executable : mState.mProgramExecutables)
- {
- if (executable)
- {
- mState.mProgramExecutablesToDiscard.emplace_back(std::move(executable));
- }
- }
-
mState.destroyDiscardedExecutables(context);
}
@@ -505,10 +498,11 @@ angle::Result ProgramPipeline::link(const Context *context)
mState.destroyDiscardedExecutables(context);
// Make a new executable to hold the result of the link.
- InstallExecutable(
- context,
- std::make_shared<ProgramExecutable>(context->getImplementation(), &mState.mInfoLog),
- &mState.mExecutable);
+ SharedProgramExecutable newExecutable =
+ std::make_shared<ProgramExecutable>(context->getImplementation(), &mState.mInfoLog);
+ newExecutable->mPPOProgramExecutables = std::move(mState.mExecutable->mPPOProgramExecutables);
+
+ InstallExecutable(context, newExecutable, &mState.mExecutable);
onStateChange(angle::SubjectMessage::ProgramUnlinked);
updateLinkedShaderStages();
@@ -597,7 +591,7 @@ angle::Result ProgramPipeline::link(const Context *context)
}
// Merge uniforms.
- mState.mExecutable->copyUniformsFromProgramMap(mState.mProgramExecutables);
+ mState.mExecutable->copyUniformsFromProgramMap(mState.mExecutable->mPPOProgramExecutables);
if (mState.mExecutable->hasLinkedShaderStage(ShaderType::Vertex))
{
@@ -785,12 +779,12 @@ void ProgramPipeline::onSubjectStateChange(angle::SubjectIndex index, angle::Sub
{
ShaderType shaderType = static_cast<ShaderType>(index);
ASSERT(mState.mPrograms[shaderType] != nullptr);
- ASSERT(mState.mProgramExecutables[shaderType]);
+ ASSERT(mState.mExecutable->mPPOProgramExecutables[shaderType]);
mState.mIsLinked = false;
mState.mProgramExecutablesToDiscard.emplace_back(
- std::move(mState.mProgramExecutables[shaderType]));
- mState.mProgramExecutables[shaderType] =
+ std::move(mState.mExecutable->mPPOProgramExecutables[shaderType]));
+ mState.mExecutable->mPPOProgramExecutables[shaderType] =
mState.mPrograms[shaderType]->getSharedExecutable();
break;
diff --git a/src/libANGLE/ProgramPipeline.h b/src/libANGLE/ProgramPipeline.h
index 2425e587ef..35d07552c8 100644
--- a/src/libANGLE/ProgramPipeline.h
+++ b/src/libANGLE/ProgramPipeline.h
@@ -64,7 +64,7 @@ class ProgramPipelineState final : angle::NonCopyable
const Program *getShaderProgram(ShaderType shaderType) const { return mPrograms[shaderType]; }
const SharedProgramExecutable &getShaderProgramExecutable(ShaderType shaderType) const
{
- return mProgramExecutables[shaderType];
+ return mExecutable->mPPOProgramExecutables[shaderType];
}
bool usesShaderProgram(ShaderProgramID program) const;
@@ -90,10 +90,6 @@ class ProgramPipelineState final : angle::NonCopyable
// The shader programs for each stage.
ShaderMap<Program *> mPrograms;
- // Installed executables from the programs. Note that these may be different from the programs'
- // current executables, because they may have been unsuccessfully relinked.
- ShaderMap<SharedProgramExecutable> mProgramExecutables;
-
// Mapping from program's UBOs into the program executable's UBOs.
ShaderMap<ProgramUniformBlockArray<GLuint>> mUniformBlockMap;
diff --git a/src/libANGLE/ResourceManager.cpp b/src/libANGLE/ResourceManager.cpp
index 8c63342b12..bf0c93d59e 100644
--- a/src/libANGLE/ResourceManager.cpp
+++ b/src/libANGLE/ResourceManager.cpp
@@ -61,14 +61,16 @@ void ResourceManagerBase::release(const Context *context)
template <typename ResourceType, typename ImplT, typename IDType>
TypedResourceManager<ResourceType, ImplT, IDType>::~TypedResourceManager()
{
- ASSERT(mObjectMap.empty());
+ ASSERT(UnsafeResourceMapIter(mObjectMap).empty());
}
template <typename ResourceType, typename ImplT, typename IDType>
void TypedResourceManager<ResourceType, ImplT, IDType>::reset(const Context *context)
{
+ // Note: this function is called when the last context in the share group is destroyed. Thus
+ // there are no thread safety concerns.
this->mHandleAllocator.reset();
- for (const auto &resource : mObjectMap)
+ for (const auto &resource : UnsafeResourceMapIter(mObjectMap))
{
if (resource.second)
{
@@ -138,21 +140,30 @@ ShaderProgramManager::ShaderProgramManager() {}
ShaderProgramManager::~ShaderProgramManager()
{
- ASSERT(mPrograms.empty());
- ASSERT(mShaders.empty());
+ ASSERT(UnsafeResourceMapIter(mPrograms).empty());
+ ASSERT(UnsafeResourceMapIter(mShaders).empty());
}
void ShaderProgramManager::reset(const Context *context)
{
- while (!mPrograms.empty())
+ // Note: this function is called when the last context in the share group is destroyed. Thus
+ // there are no thread safety concerns.
+ mHandleAllocator.reset();
+ for (const auto &program : UnsafeResourceMapIter(mPrograms))
{
- deleteProgram(context, {mPrograms.begin()->first});
+ if (program.second)
+ {
+ program.second->onDestroy(context);
+ }
}
- mPrograms.clear();
- while (!mShaders.empty())
+ for (const auto &shader : UnsafeResourceMapIter(mShaders))
{
- deleteShader(context, {mShaders.begin()->first});
+ if (shader.second)
+ {
+ shader.second->onDestroy(context);
+ }
}
+ mPrograms.clear();
mShaders.clear();
}
@@ -238,7 +249,9 @@ TextureID TextureManager::createTexture()
void TextureManager::signalAllTexturesDirty() const
{
- for (const auto &texture : mObjectMap)
+ // Note: this function is called with glRequestExtensionANGLE and glDisableExtensionANGLE. The
+ // GL_ANGLE_request_extension explicitly requires the application to ensure thread safety.
+ for (const auto &texture : UnsafeResourceMapIter(mObjectMap))
{
if (texture.second)
{
@@ -384,7 +397,8 @@ Framebuffer *FramebufferManager::getDefaultFramebuffer() const
void FramebufferManager::invalidateFramebufferCompletenessCache() const
{
- for (const auto &framebuffer : mObjectMap)
+ // Note: framebuffer objects are private to context and so the map doesn't need locking
+ for (const auto &framebuffer : UnsafeResourceMapIter(mObjectMap))
{
if (framebuffer.second)
{
@@ -428,14 +442,20 @@ MemoryObjectManager::MemoryObjectManager() {}
MemoryObjectManager::~MemoryObjectManager()
{
- ASSERT(mMemoryObjects.empty());
+ ASSERT(UnsafeResourceMapIter(mMemoryObjects).empty());
}
void MemoryObjectManager::reset(const Context *context)
{
- while (!mMemoryObjects.empty())
+ // Note: this function is called when the last context in the share group is destroyed. Thus
+ // there are no thread safety concerns.
+ mHandleAllocator.reset();
+ for (const auto &memoryObject : UnsafeResourceMapIter(mMemoryObjects))
{
- deleteMemoryObject(context, {mMemoryObjects.begin()->first});
+ if (memoryObject.second)
+ {
+ memoryObject.second->release(context);
+ }
}
mMemoryObjects.clear();
}
@@ -477,14 +497,20 @@ SemaphoreManager::SemaphoreManager() {}
SemaphoreManager::~SemaphoreManager()
{
- ASSERT(mSemaphores.empty());
+ ASSERT(UnsafeResourceMapIter(mSemaphores).empty());
}
void SemaphoreManager::reset(const Context *context)
{
- while (!mSemaphores.empty())
+ // Note: this function is called when the last context in the share group is destroyed. Thus
+ // there are no thread safety concerns.
+ mHandleAllocator.reset();
+ for (const auto &semaphore : UnsafeResourceMapIter(mSemaphores))
{
- deleteSemaphore(context, {mSemaphores.begin()->first});
+ if (semaphore.second)
+ {
+ semaphore.second->release(context);
+ }
}
mSemaphores.clear();
}
diff --git a/src/libANGLE/ResourceManager.h b/src/libANGLE/ResourceManager.h
index 710a88dd44..372b76b4b5 100644
--- a/src/libANGLE/ResourceManager.h
+++ b/src/libANGLE/ResourceManager.h
@@ -75,11 +75,7 @@ class TypedResourceManager : public ResourceManagerBase
return GetIDValue(handle) == 0 || mObjectMap.contains(handle);
}
- typename ResourceMap<ResourceType, IDType>::Iterator begin() const
- {
- return mObjectMap.begin();
- }
- typename ResourceMap<ResourceType, IDType>::Iterator end() const { return mObjectMap.end(); }
+ const ResourceMap<ResourceType, IDType> &getResourcesForCapture() const { return mObjectMap; }
protected:
~TypedResourceManager() override;
diff --git a/src/libANGLE/ResourceMap.h b/src/libANGLE/ResourceMap.h
index b24c1e6240..92d6b6251d 100644
--- a/src/libANGLE/ResourceMap.h
+++ b/src/libANGLE/ResourceMap.h
@@ -73,20 +73,19 @@ class ResourceMap final : angle::NonCopyable
bool mSkipNulls;
};
+ private:
+ friend class Iterator;
+ template <typename SameResourceType, typename SameIDType>
+ friend class UnsafeResourceMapIter;
+
// null values represent reserved handles.
Iterator begin() const;
Iterator end() const;
- Iterator find(IDType handle) const;
Iterator beginWithNull() const;
Iterator endWithNull() const;
- // Not a constant-time operation, should only be used for verification.
- bool empty() const;
-
- private:
- friend class Iterator;
-
+ // Used by iterators and related functions only (due to lack of thread safety).
GLuint nextResource(size_t flatIndex, bool skipNulls) const;
// constexpr methods cannot contain reinterpret_cast, so we need a static method.
@@ -109,6 +108,30 @@ class ResourceMap final : angle::NonCopyable
HashMap mHashedResources;
};
+// A helper to retrieve the resource map iterators while being explicit that this is not thread
+// safe. Usage of iterators are limited to clean up on destruction and capture/replay, neither of
+// which can race with other threads in their access to the resource map.
+template <typename ResourceType, typename IDType>
+class UnsafeResourceMapIter
+{
+ public:
+ using ResMap = ResourceMap<ResourceType, IDType>;
+
+ UnsafeResourceMapIter(const ResMap &resourceMap) : mResourceMap(resourceMap) {}
+
+ typename ResMap::Iterator begin() const { return mResourceMap.begin(); }
+ typename ResMap::Iterator end() const { return mResourceMap.end(); }
+
+ typename ResMap::Iterator beginWithNull() const { return mResourceMap.beginWithNull(); }
+ typename ResMap::Iterator endWithNull() const { return mResourceMap.endWithNull(); }
+
+ // Not a constant-time operation, should only be used for verification.
+ bool empty() const;
+
+ private:
+ const ResMap &mResourceMap;
+};
+
template <typename ResourceType, typename IDType>
ResourceMap<ResourceType, IDType>::ResourceMap()
: mFlatResourcesSize(kInitialFlatResourcesSize),
@@ -120,7 +143,7 @@ ResourceMap<ResourceType, IDType>::ResourceMap()
template <typename ResourceType, typename IDType>
ResourceMap<ResourceType, IDType>::~ResourceMap()
{
- ASSERT(empty());
+ ASSERT(UnsafeResourceMapIter(*this).empty());
delete[] mFlatResources;
}
@@ -223,25 +246,9 @@ ResourceMap<ResourceType, IDType>::endWithNull() const
}
template <typename ResourceType, typename IDType>
-typename ResourceMap<ResourceType, IDType>::Iterator ResourceMap<ResourceType, IDType>::find(
- IDType handle) const
-{
- if (handle < mFlatResourcesSize)
- {
- return (mFlatResources[handle] != InvalidPointer()
- ? Iterator(handle, mHashedResources.begin())
- : end());
- }
- else
- {
- return mHashedResources.find(handle);
- }
-}
-
-template <typename ResourceType, typename IDType>
-bool ResourceMap<ResourceType, IDType>::empty() const
+bool UnsafeResourceMapIter<ResourceType, IDType>::empty() const
{
- return (begin() == end());
+ return begin() == end();
}
template <typename ResourceType, typename IDType>
diff --git a/src/libANGLE/ResourceMap_unittest.cpp b/src/libANGLE/ResourceMap_unittest.cpp
index 056dde518a..01d2d706ba 100644
--- a/src/libANGLE/ResourceMap_unittest.cpp
+++ b/src/libANGLE/ResourceMap_unittest.cpp
@@ -33,7 +33,7 @@ TEST(ResourceMapTest, AssignAndErase)
ASSERT_EQ(&objects[index], found);
}
- ASSERT_TRUE(resourceMap.empty());
+ ASSERT_TRUE(UnsafeResourceMapIter(resourceMap).empty());
}
// Tests assigning slots in the map and then using clear() to free it.
@@ -48,7 +48,7 @@ TEST(ResourceMapTest, AssignAndClear)
}
resourceMap.clear();
- ASSERT_TRUE(resourceMap.empty());
+ ASSERT_TRUE(UnsafeResourceMapIter(resourceMap).empty());
}
// Tests growing a map more than double the size.
@@ -80,7 +80,7 @@ TEST(ResourceMapTest, BigGrowth)
ASSERT_EQ(object, *found);
}
- ASSERT_TRUE(resourceMap.empty());
+ ASSERT_TRUE(UnsafeResourceMapIter(resourceMap).empty());
}
// Tests querying unassigned or erased values.
@@ -106,7 +106,7 @@ TEST(ResourceMapTest, QueryUnassigned)
resourceMap.assign(object, &object);
}
- ASSERT_FALSE(resourceMap.empty());
+ ASSERT_FALSE(UnsafeResourceMapIter(resourceMap).empty());
for (size_t &object : objects)
{
@@ -126,7 +126,7 @@ TEST(ResourceMapTest, QueryUnassigned)
ASSERT_EQ(object, *found);
}
- ASSERT_TRUE(resourceMap.empty());
+ ASSERT_TRUE(UnsafeResourceMapIter(resourceMap).empty());
ASSERT_FALSE(resourceMap.contains(0));
ASSERT_EQ(nullptr, resourceMap.query(0));
diff --git a/src/libANGLE/capture/FrameCapture.cpp b/src/libANGLE/capture/FrameCapture.cpp
index 22daf186f7..3d9680aa94 100644
--- a/src/libANGLE/capture/FrameCapture.cpp
+++ b/src/libANGLE/capture/FrameCapture.cpp
@@ -4125,7 +4125,7 @@ void CaptureShareGroupMidExecutionSetup(
// Capture Buffer data.
const gl::BufferManager &buffers = apiState.getBufferManagerForCapture();
- for (const auto &bufferIter : buffers)
+ for (const auto &bufferIter : gl::UnsafeResourceMapIter(buffers.getResourcesForCapture()))
{
gl::BufferID id = {bufferIter.first};
gl::Buffer *buffer = bufferIter.second;
@@ -4267,7 +4267,7 @@ void CaptureShareGroupMidExecutionSetup(
// Capture Texture setup and data.
const gl::TextureManager &textures = apiState.getTextureManagerForCapture();
- for (const auto &textureIter : textures)
+ for (const auto &textureIter : gl::UnsafeResourceMapIter(textures.getResourcesForCapture()))
{
gl::TextureID id = {textureIter.first};
gl::Texture *texture = textureIter.second;
@@ -4593,7 +4593,8 @@ void CaptureShareGroupMidExecutionSetup(
const gl::RenderbufferManager &renderbuffers = apiState.getRenderbufferManagerForCapture();
FramebufferCaptureFuncs framebufferFuncs(context->isGLES1());
- for (const auto &renderbufIter : renderbuffers)
+ for (const auto &renderbufIter :
+ gl::UnsafeResourceMapIter(renderbuffers.getResourcesForCapture()))
{
gl::RenderbufferID id = {renderbufIter.first};
const gl::Renderbuffer *renderbuffer = renderbufIter.second;
@@ -4657,7 +4658,7 @@ void CaptureShareGroupMidExecutionSetup(
// Capture Program binary state.
gl::ShaderProgramID tempShaderStartID = {resourceTracker->getMaxShaderPrograms()};
std::map<gl::ShaderProgramID, std::vector<gl::ShaderProgramID>> deferredAttachCalls;
- for (const auto &programIter : programs)
+ for (const auto &programIter : gl::UnsafeResourceMapIter(programs))
{
gl::ShaderProgramID id = {programIter.first};
gl::Program *program = programIter.second;
@@ -4738,7 +4739,7 @@ void CaptureShareGroupMidExecutionSetup(
}
// Handle shaders.
- for (const auto &shaderIter : shaders)
+ for (const auto &shaderIter : gl::UnsafeResourceMapIter(shaders))
{
gl::ShaderProgramID id = {shaderIter.first};
gl::Shader *shader = shaderIter.second;
@@ -4827,7 +4828,7 @@ void CaptureShareGroupMidExecutionSetup(
// Capture Sampler Objects
const gl::SamplerManager &samplers = apiState.getSamplerManagerForCapture();
- for (const auto &samplerIter : samplers)
+ for (const auto &samplerIter : gl::UnsafeResourceMapIter(samplers.getResourcesForCapture()))
{
gl::SamplerID samplerID = {samplerIter.first};
@@ -4892,7 +4893,7 @@ void CaptureShareGroupMidExecutionSetup(
// Capture Sync Objects
const gl::SyncManager &syncs = apiState.getSyncManagerForCapture();
- for (const auto &syncIter : syncs)
+ for (const auto &syncIter : gl::UnsafeResourceMapIter(syncs.getResourcesForCapture()))
{
gl::SyncID syncID = {syncIter.first};
const gl::Sync *sync = syncIter.second;
@@ -4967,7 +4968,7 @@ void CaptureMidExecutionSetup(const gl::Context *context,
const gl::VertexArrayMap &vertexArrayMap = context->getVertexArraysForCapture();
gl::VertexArrayID boundVertexArrayID = {0};
- for (const auto &vertexArrayIter : vertexArrayMap)
+ for (const auto &vertexArrayIter : gl::UnsafeResourceMapIter(vertexArrayMap))
{
TrackedResource &trackedVertexArrays =
resourceTracker->getTrackedResource(context->id(), ResourceIDType::VertexArray);
@@ -5145,7 +5146,8 @@ void CaptureMidExecutionSetup(const gl::Context *context,
const gl::RenderbufferManager &renderbuffers = apiState.getRenderbufferManagerForCapture();
gl::RenderbufferID currentRenderbuffer = {0};
- for (const auto &renderbufIter : renderbuffers)
+ for (const auto &renderbufIter :
+ gl::UnsafeResourceMapIter(renderbuffers.getResourcesForCapture()))
{
currentRenderbuffer = renderbufIter.second->id();
}
@@ -5162,7 +5164,8 @@ void CaptureMidExecutionSetup(const gl::Context *context,
gl::FramebufferID currentDrawFramebuffer = {0};
gl::FramebufferID currentReadFramebuffer = {0};
- for (const auto &framebufferIter : framebuffers)
+ for (const auto &framebufferIter :
+ gl::UnsafeResourceMapIter(framebuffers.getResourcesForCapture()))
{
gl::FramebufferID id = {framebufferIter.first};
const gl::Framebuffer *framebuffer = framebufferIter.second;
@@ -5297,7 +5300,8 @@ void CaptureMidExecutionSetup(const gl::Context *context,
const gl::ProgramPipelineManager *programPipelineManager =
apiState.getProgramPipelineManagerForCapture();
- for (const auto &ppoIterator : *programPipelineManager)
+ for (const auto &ppoIterator :
+ gl::UnsafeResourceMapIter(programPipelineManager->getResourcesForCapture()))
{
gl::ProgramPipeline *pipeline = ppoIterator.second;
gl::ProgramPipelineID id = {ppoIterator.first};
@@ -5380,8 +5384,9 @@ void CaptureMidExecutionSetup(const gl::Context *context,
// Create existing queries. Note that queries may be genned and not yet started. In that
// case the queries will exist in the query map as nullptr entries.
const gl::QueryMap &queryMap = context->getQueriesForCapture();
- for (gl::QueryMap::Iterator queryIter = queryMap.beginWithNull();
- queryIter != queryMap.endWithNull(); ++queryIter)
+ for (gl::QueryMap::Iterator queryIter = gl::UnsafeResourceMapIter(queryMap).beginWithNull(),
+ endIter = gl::UnsafeResourceMapIter(queryMap).endWithNull();
+ queryIter != endIter; ++queryIter)
{
ASSERT(queryIter->first);
gl::QueryID queryID = {queryIter->first};
@@ -5407,7 +5412,7 @@ void CaptureMidExecutionSetup(const gl::Context *context,
// Transform Feedback
const gl::TransformFeedbackMap &xfbMap = context->getTransformFeedbacksForCapture();
- for (const auto &xfbIter : xfbMap)
+ for (const auto &xfbIter : gl::UnsafeResourceMapIter(xfbMap))
{
gl::TransformFeedbackID xfbID = {xfbIter.first};
diff --git a/src/libANGLE/capture/capture_egl_autogen.cpp b/src/libANGLE/capture/capture_egl_autogen.cpp
index fb94a19c0f..9cda916fac 100644
--- a/src/libANGLE/capture/capture_egl_autogen.cpp
+++ b/src/libANGLE/capture/capture_egl_autogen.cpp
@@ -1146,6 +1146,17 @@ CallCapture CaptureCopyMetalSharedEventANGLE(egl::Thread *thread,
return CallCapture(angle::EntryPoint::EGLCopyMetalSharedEventANGLE, std::move(paramBuffer));
}
+CallCapture CaptureSetValidationEnabledANGLE(egl::Thread *thread,
+ bool isCallValid,
+ EGLBoolean validationState)
+{
+ ParamBuffer paramBuffer;
+
+ paramBuffer.addValueParam("validationState", ParamType::TEGLBoolean, validationState);
+
+ return CallCapture(angle::EntryPoint::EGLSetValidationEnabledANGLE, std::move(paramBuffer));
+}
+
CallCapture CaptureReleaseHighPowerGPUANGLE(egl::Thread *thread,
bool isCallValid,
egl::Display *dpyPacked,
diff --git a/src/libANGLE/capture/capture_egl_autogen.h b/src/libANGLE/capture/capture_egl_autogen.h
index 9a65148a8f..9c2edfe34d 100644
--- a/src/libANGLE/capture/capture_egl_autogen.h
+++ b/src/libANGLE/capture/capture_egl_autogen.h
@@ -347,6 +347,9 @@ angle::CallCapture CaptureCopyMetalSharedEventANGLE(egl::Thread *thread,
egl::Display *dpyPacked,
egl::SyncID syncPacked,
void *returnValue);
+angle::CallCapture CaptureSetValidationEnabledANGLE(egl::Thread *thread,
+ bool isCallValid,
+ EGLBoolean validationState);
angle::CallCapture CaptureReleaseHighPowerGPUANGLE(egl::Thread *thread,
bool isCallValid,
egl::Display *dpyPacked,
diff --git a/src/libANGLE/capture/serialize.cpp b/src/libANGLE/capture/serialize.cpp
index c1138a7f34..61655020a6 100644
--- a/src/libANGLE/capture/serialize.cpp
+++ b/src/libANGLE/capture/serialize.cpp
@@ -1404,7 +1404,8 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::FramebufferManager &framebufferManager =
context->getState().getFramebufferManagerForCapture();
GroupScope framebufferGroup(&json, "FramebufferManager");
- for (const auto &framebuffer : framebufferManager)
+ for (const auto &framebuffer :
+ gl::UnsafeResourceMapIter(framebufferManager.getResourcesForCapture()))
{
gl::Framebuffer *framebufferPtr = framebuffer.second;
ANGLE_TRY(SerializeFramebuffer(context, &json, &scratchBuffer, framebufferPtr));
@@ -1413,7 +1414,7 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
{
const gl::BufferManager &bufferManager = context->getState().getBufferManagerForCapture();
GroupScope framebufferGroup(&json, "BufferManager");
- for (const auto &buffer : bufferManager)
+ for (const auto &buffer : gl::UnsafeResourceMapIter(bufferManager.getResourcesForCapture()))
{
gl::Buffer *bufferPtr = buffer.second;
ANGLE_TRY(SerializeBuffer(context, &json, &scratchBuffer, bufferPtr));
@@ -1423,7 +1424,8 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::SamplerManager &samplerManager =
context->getState().getSamplerManagerForCapture();
GroupScope samplerGroup(&json, "SamplerManager");
- for (const auto &sampler : samplerManager)
+ for (const auto &sampler :
+ gl::UnsafeResourceMapIter(samplerManager.getResourcesForCapture()))
{
gl::Sampler *samplerPtr = sampler.second;
SerializeSampler(&json, samplerPtr);
@@ -1433,7 +1435,8 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::RenderbufferManager &renderbufferManager =
context->getState().getRenderbufferManagerForCapture();
GroupScope renderbufferGroup(&json, "RenderbufferManager");
- for (const auto &renderbuffer : renderbufferManager)
+ for (const auto &renderbuffer :
+ gl::UnsafeResourceMapIter(renderbufferManager.getResourcesForCapture()))
{
gl::Renderbuffer *renderbufferPtr = renderbuffer.second;
ANGLE_TRY(SerializeRenderbuffer(context, &json, &scratchBuffer, renderbufferPtr));
@@ -1445,7 +1448,7 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::ResourceMap<gl::Shader, gl::ShaderProgramID> &shaderManager =
shaderProgramManager.getShadersForCapture();
GroupScope shaderGroup(&json, "ShaderManager");
- for (const auto &shader : shaderManager)
+ for (const auto &shader : gl::UnsafeResourceMapIter(shaderManager))
{
GLuint id = shader.first;
gl::Shader *shaderPtr = shader.second;
@@ -1456,7 +1459,7 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::ResourceMap<gl::Program, gl::ShaderProgramID> &programManager =
shaderProgramManager.getProgramsForCaptureAndPerf();
GroupScope shaderGroup(&json, "ProgramManager");
- for (const auto &program : programManager)
+ for (const auto &program : gl::UnsafeResourceMapIter(programManager))
{
GLuint id = program.first;
gl::Program *programPtr = program.second;
@@ -1467,7 +1470,8 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
const gl::TextureManager &textureManager =
context->getState().getTextureManagerForCapture();
GroupScope shaderGroup(&json, "TextureManager");
- for (const auto &texture : textureManager)
+ for (const auto &texture :
+ gl::UnsafeResourceMapIter(textureManager.getResourcesForCapture()))
{
gl::Texture *texturePtr = texture.second;
ANGLE_TRY(SerializeTexture(context, &json, &scratchBuffer, texturePtr));
@@ -1476,7 +1480,7 @@ Result SerializeContextToString(const gl::Context *context, std::string *stringO
{
const gl::VertexArrayMap &vertexArrayMap = context->getVertexArraysForCapture();
GroupScope shaderGroup(&json, "VertexArrayMap");
- for (const auto &vertexArray : vertexArrayMap)
+ for (const auto &vertexArray : gl::UnsafeResourceMapIter(vertexArrayMap))
{
gl::VertexArray *vertexArrayPtr = vertexArray.second;
SerializeVertexArray(&json, vertexArrayPtr);
diff --git a/src/libANGLE/renderer/metal/TextureMtl.mm b/src/libANGLE/renderer/metal/TextureMtl.mm
index a0bef18639..1febc2a037 100644
--- a/src/libANGLE/renderer/metal/TextureMtl.mm
+++ b/src/libANGLE/renderer/metal/TextureMtl.mm
@@ -1324,7 +1324,9 @@ angle::Result TextureMtl::setEGLImageTarget(const gl::Context *context,
angle::Format::InternalFormatToID(image->getFormat().info->sizedInternalFormat);
mFormat = contextMtl->getPixelFormat(angleFormatId);
- mSlices = mNativeTexture->cubeFacesOrArrayLength();
+ mSlices = mNativeTexture->cubeFacesOrArrayLength();
+ mCurrentBaseLevel = 0;
+ mCurrentMaxLevel = mNativeTexture->mipmapLevels() - 1;
ANGLE_TRY(ensureSamplerStateCreated(context));
@@ -1484,10 +1486,13 @@ angle::Result TextureMtl::bindTexImage(const gl::Context *context, egl::Surface
{
releaseTexture(true);
- mBoundSurface = surface;
- auto pBuffer = GetImplAs<OffscreenSurfaceMtl>(surface);
- mNativeTexture = pBuffer->getColorTexture();
- mFormat = pBuffer->getColorFormat();
+ mBoundSurface = surface;
+ auto pBuffer = GetImplAs<OffscreenSurfaceMtl>(surface);
+ mNativeTexture = pBuffer->getColorTexture();
+ mFormat = pBuffer->getColorFormat();
+ mSlices = mNativeTexture->cubeFacesOrArrayLength();
+ mCurrentBaseLevel = 0;
+ mCurrentMaxLevel = mNativeTexture->mipmapLevels() - 1;
ANGLE_TRY(ensureSamplerStateCreated(context));
// Tell context to rebind textures
diff --git a/src/libANGLE/renderer/renderer_utils.cpp b/src/libANGLE/renderer/renderer_utils.cpp
index 29a830f55b..badfb75c64 100644
--- a/src/libANGLE/renderer/renderer_utils.cpp
+++ b/src/libANGLE/renderer/renderer_utils.cpp
@@ -9,6 +9,7 @@
#include "libANGLE/renderer/renderer_utils.h"
+#include "common/base/anglebase/numerics/checked_math.h"
#include "common/string_utils.h"
#include "common/system_utils.h"
#include "common/utilities.h"
@@ -531,6 +532,32 @@ void PackPixels(const PackPixelsParams &params,
}
}
+angle::Result GetPackPixelsParams(const gl::InternalFormat &sizedFormatInfo,
+ GLuint outputPitch,
+ const gl::PixelPackState &packState,
+ gl::Buffer *packBuffer,
+ const gl::Rectangle &area,
+ const gl::Rectangle &clippedArea,
+ rx::PackPixelsParams *paramsOut,
+ GLuint *skipBytesOut)
+{
+ angle::CheckedNumeric<GLuint> checkedSkipBytes = *skipBytesOut;
+ checkedSkipBytes += (clippedArea.x - area.x) * sizedFormatInfo.pixelBytes +
+ (clippedArea.y - area.y) * outputPitch;
+ if (!checkedSkipBytes.AssignIfValid(skipBytesOut))
+ {
+ return angle::Result::Stop;
+ }
+
+ angle::FormatID angleFormatID =
+ angle::Format::InternalFormatToID(sizedFormatInfo.sizedInternalFormat);
+ const angle::Format &angleFormat = angle::Format::Get(angleFormatID);
+
+ *paramsOut = rx::PackPixelsParams(clippedArea, angleFormat, outputPitch,
+ packState.reverseRowOrder, packBuffer, 0);
+ return angle::Result::Continue;
+}
+
bool FastCopyFunctionMap::has(angle::FormatID formatID) const
{
return (get(formatID) != nullptr);
diff --git a/src/libANGLE/renderer/renderer_utils.h b/src/libANGLE/renderer/renderer_utils.h
index db6737b7a3..500d988746 100644
--- a/src/libANGLE/renderer/renderer_utils.h
+++ b/src/libANGLE/renderer/renderer_utils.h
@@ -142,6 +142,15 @@ void PackPixels(const PackPixelsParams &params,
const uint8_t *source,
uint8_t *destination);
+angle::Result GetPackPixelsParams(const gl::InternalFormat &sizedFormatInfo,
+ GLuint outputPitch,
+ const gl::PixelPackState &packState,
+ gl::Buffer *packBuffer,
+ const gl::Rectangle &area,
+ const gl::Rectangle &clippedArea,
+ rx::PackPixelsParams *paramsOut,
+ GLuint *skipBytesOut);
+
using InitializeTextureDataFunction = void (*)(size_t width,
size_t height,
size_t depth,
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 44b937d2b9..39ca051602 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -8956,8 +8956,6 @@ void ContextVk::resetPerFramePerfCounters()
mPerfCounters.flushedOutsideRenderPassCommandBuffers = 0;
mPerfCounters.resolveImageCommands = 0;
mPerfCounters.descriptorSetAllocations = 0;
- mPerfCounters.pipelineCreationCacheHits = 0;
- mPerfCounters.pipelineCreationCacheMisses = 0;
mRenderer->resetCommandQueuePerFrameCounters();
diff --git a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
index 9c901d84bd..074866d0e3 100644
--- a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
@@ -347,6 +347,18 @@ class ProgramExecutableVk::WarmUpTaskCommon : public vk::Context, public LinkSub
contextVk->handleError(mErrorCode, mErrorFile, mErrorFunction, mErrorLine);
return angle::Result::Stop;
}
+
+ // Accumulate relevant perf counters
+ const angle::VulkanPerfCounters &from = getPerfCounters();
+ angle::VulkanPerfCounters &to = contextVk->getPerfCounters();
+
+ to.pipelineCreationCacheHits += from.pipelineCreationCacheHits;
+ to.pipelineCreationCacheMisses += from.pipelineCreationCacheMisses;
+ to.pipelineCreationTotalCacheHitsDurationNs +=
+ from.pipelineCreationTotalCacheHitsDurationNs;
+ to.pipelineCreationTotalCacheMissesDurationNs +=
+ from.pipelineCreationTotalCacheMissesDurationNs;
+
return angle::Result::Continue;
}
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index a644bcaec4..8483054b1b 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -119,9 +119,16 @@ class LinkTaskVk final : public vk::Context, public LinkTask
ANGLE_TRY(contextVk->switchToFramebufferFetchMode(true));
}
- // Update the relevant perf counters
- angle::VulkanPerfCounters &from = contextVk->getPerfCounters();
- angle::VulkanPerfCounters &to = getPerfCounters();
+ // Forward any errors
+ if (mErrorCode != VK_SUCCESS)
+ {
+ contextVk->handleError(mErrorCode, mErrorFile, mErrorFunction, mErrorLine);
+ return angle::Result::Stop;
+ }
+
+ // Accumulate relevant perf counters
+ const angle::VulkanPerfCounters &from = getPerfCounters();
+ angle::VulkanPerfCounters &to = contextVk->getPerfCounters();
to.pipelineCreationCacheHits += from.pipelineCreationCacheHits;
to.pipelineCreationCacheMisses += from.pipelineCreationCacheMisses;
@@ -130,12 +137,6 @@ class LinkTaskVk final : public vk::Context, public LinkTask
to.pipelineCreationTotalCacheMissesDurationNs +=
from.pipelineCreationTotalCacheMissesDurationNs;
- // Forward any errors
- if (mErrorCode != VK_SUCCESS)
- {
- contextVk->handleError(mErrorCode, mErrorFile, mErrorFunction, mErrorLine);
- return angle::Result::Stop;
- }
return angle::Result::Continue;
}
diff --git a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
index e22771208c..8bde953c9a 100644
--- a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
@@ -1647,9 +1647,9 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context,
}
}
- // Get the list of compatible present modes to avoid unnecessary swapchain recreation.
- VkSwapchainPresentModesCreateInfoEXT compatibleModesInfo = {};
- if (renderer->getFeatures().supportsSwapchainMaintenance1.enabled)
+ // Get the list of compatible present modes to avoid unnecessary swapchain recreation. Also
+ // update minImageCount with the per-present limit.
+ if (renderer->getFeatures().supportsSurfaceMaintenance1.enabled)
{
VkPhysicalDeviceSurfaceInfo2KHR surfaceInfo2 = {};
surfaceInfo2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
@@ -1676,19 +1676,10 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context,
mCompatiblePresentModes.resize(compatibleModes.presentModeCount);
- // The implementation must always return the given preesnt mode as compatible with itself.
+ // The implementation must always return the given present mode as compatible with itself.
ASSERT(IsCompatiblePresentMode(mDesiredSwapchainPresentMode, mCompatiblePresentModes.data(),
mCompatiblePresentModes.size()));
- if (compatibleModes.presentModeCount > 1)
- {
- compatibleModesInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT;
- compatibleModesInfo.presentModeCount = compatibleModes.presentModeCount;
- compatibleModesInfo.pPresentModes = mCompatiblePresentModes.data();
-
- vk::AddToPNextChain(&swapchainInfo, &compatibleModesInfo);
- }
-
// Vulkan spec says "The per-present mode image counts may be less-than or greater-than the
// image counts returned when VkSurfacePresentModeEXT is not provided.". Use the per present
// mode imageCount here. Otherwise we may get into
@@ -1697,6 +1688,20 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context,
mMinImageCount = GetMinImageCount(mSurfaceCaps);
swapchainInfo.minImageCount = mMinImageCount;
}
+
+ VkSwapchainPresentModesCreateInfoEXT compatibleModesInfo = {};
+ if (renderer->getFeatures().supportsSwapchainMaintenance1.enabled)
+ {
+ if (mCompatiblePresentModes.size() > 1)
+ {
+ compatibleModesInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT;
+ compatibleModesInfo.presentModeCount =
+ static_cast<uint32_t>(mCompatiblePresentModes.size());
+ compatibleModesInfo.pPresentModes = mCompatiblePresentModes.data();
+
+ vk::AddToPNextChain(&swapchainInfo, &compatibleModesInfo);
+ }
+ }
else
{
// Without VK_EXT_swapchain_maintenance1, each present mode can be considered only
diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/src/libANGLE/renderer/vulkan/vk_helpers.cpp
index 07ad00981e..06712331b7 100644
--- a/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_helpers.cpp
@@ -1528,10 +1528,10 @@ void CommandBufferHelperCommon::resetImpl(Context *context)
// Clean up event garbage. Note that ImageHelper object may still holding reference count to it,
// so the event itself will not gets destroyed until the last refCount goes away.
- if (!mRefCountedEventGarbage.empty())
+ if (!mRefCountedEventCollector.empty())
{
- context->getRenderer()->collectRefCountedEventGarbage(mQueueSerial,
- std::move(mRefCountedEventGarbage));
+ context->getRenderer()->collectRefCountedEventsGarbage(
+ mQueueSerial, std::move(mRefCountedEventCollector));
}
}
@@ -1709,7 +1709,7 @@ void CommandBufferHelperCommon::updateImageLayoutAndBarrier(Context *context,
{
VkSemaphore semaphore = VK_NULL_HANDLE;
image->updateLayoutAndBarrier(context, aspectFlags, imageLayout, barrierType, mQueueSerial,
- &mPipelineBarriers, &mEventBarriers, &mRefCountedEventGarbage,
+ &mPipelineBarriers, &mEventBarriers, &mRefCountedEventCollector,
&semaphore);
// If image has an ANI semaphore, move it to command buffer so that we can wait for it in
// next submission.
@@ -1748,7 +1748,7 @@ void CommandBufferHelperCommon::flushSetEventsImpl(Context *context, CommandBuff
commandBuffer->setEvent(refCountedEvent.getEvent().getHandle(),
GetImageLayoutDstStageMask(context, layoutData));
// We no longer need event, so garbage collect it.
- mRefCountedEventGarbage.add(&refCountedEvent);
+ mRefCountedEventCollector.emplace_back(std::move(refCountedEvent));
}
mRefCountedEvents.mask.reset();
}
@@ -7102,7 +7102,7 @@ void ImageHelper::barrierImpl(Context *context,
VkImageAspectFlags aspectMask,
ImageLayout newLayout,
uint32_t newQueueFamilyIndex,
- RefCountedEventGarbageObjects *garbageObjects,
+ RefCountedEventCollector *eventCollector,
CommandBufferT *commandBuffer,
VkSemaphore *acquireNextImageSemaphoreOut)
{
@@ -7160,7 +7160,7 @@ void ImageHelper::barrierImpl(Context *context,
VkPipelineStageFlags srcStageMask = GetRefCountedEventStageMask(context, mCurrentEvent);
commandBuffer->imageWaitEvent(mCurrentEvent.getEvent().getHandle(), srcStageMask,
dstStageMask, imageMemoryBarrier);
- garbageObjects->add(&mCurrentEvent);
+ eventCollector->emplace_back(std::move(mCurrentEvent));
}
else
{
@@ -7193,7 +7193,7 @@ template void ImageHelper::barrierImpl<priv::CommandBuffer>(
VkImageAspectFlags aspectMask,
ImageLayout newLayout,
uint32_t newQueueFamilyIndex,
- RefCountedEventGarbageObjects *garbageObjects,
+ RefCountedEventCollector *eventCollector,
priv::CommandBuffer *commandBuffer,
VkSemaphore *acquireNextImageSemaphoreOut);
@@ -7239,7 +7239,7 @@ void ImageHelper::recordWriteBarrier(Context *context,
ASSERT(!mCurrentEvent.valid() || !commands->hasSetEventPendingFlush(mCurrentEvent));
VkSemaphore acquireNextImageSemaphore;
barrierImpl(context, aspectMask, newLayout, context->getRenderer()->getQueueFamilyIndex(),
- commands->getRefCountedEventGarbage(), &commands->getCommandBuffer(),
+ commands->getRefCountedEventCollector(), &commands->getCommandBuffer(),
&acquireNextImageSemaphore);
if (acquireNextImageSemaphore != VK_NULL_HANDLE)
@@ -7268,7 +7268,7 @@ void ImageHelper::recordReadSubresourceBarrier(Context *context,
ASSERT(!mCurrentEvent.valid() || !commands->hasSetEventPendingFlush(mCurrentEvent));
VkSemaphore acquireNextImageSemaphore;
barrierImpl(context, aspectMask, newLayout, context->getRenderer()->getQueueFamilyIndex(),
- commands->getRefCountedEventGarbage(), &commands->getCommandBuffer(),
+ commands->getRefCountedEventCollector(), &commands->getCommandBuffer(),
&acquireNextImageSemaphore);
if (acquireNextImageSemaphore != VK_NULL_HANDLE)
@@ -7294,7 +7294,7 @@ void ImageHelper::recordReadBarrier(Context *context,
ASSERT(!mCurrentEvent.valid() || !commands->hasSetEventPendingFlush(mCurrentEvent));
VkSemaphore acquireNextImageSemaphore;
barrierImpl(context, aspectMask, newLayout, context->getRenderer()->getQueueFamilyIndex(),
- commands->getRefCountedEventGarbage(), &commands->getCommandBuffer(),
+ commands->getRefCountedEventCollector(), &commands->getCommandBuffer(),
&acquireNextImageSemaphore);
if (acquireNextImageSemaphore != VK_NULL_HANDLE)
@@ -7310,7 +7310,7 @@ void ImageHelper::updateLayoutAndBarrier(Context *context,
const QueueSerial &queueSerial,
PipelineBarrierArray *pipelineBarriers,
EventBarrierArray *eventBarriers,
- RefCountedEventGarbageObjects *garbageObjects,
+ RefCountedEventCollector *eventCollector,
VkSemaphore *semaphoreOut)
{
ASSERT(queueSerial.valid());
@@ -7357,7 +7357,7 @@ void ImageHelper::updateLayoutAndBarrier(Context *context,
GetImageLayoutDstStageMask(context, layoutData),
layoutData.dstAccessMask);
// Garbage collect the event, which tracks GPU completion automatically.
- garbageObjects->add(&mCurrentEvent);
+ eventCollector->emplace_back(std::move(mCurrentEvent));
}
else
{
@@ -7403,7 +7403,7 @@ void ImageHelper::updateLayoutAndBarrier(Context *context,
{
eventBarriers->addMemoryEvent(context, mLastNonShaderReadOnlyEvent, dstStageMask,
transitionTo.dstAccessMask);
- garbageObjects->add(mLastNonShaderReadOnlyEvent);
+ eventCollector->emplace_back(mLastNonShaderReadOnlyEvent);
}
else
{
@@ -7422,7 +7422,7 @@ void ImageHelper::updateLayoutAndBarrier(Context *context,
// event again.
if (mCurrentEvent.valid())
{
- garbageObjects->add(&mCurrentEvent);
+ eventCollector->emplace_back(std::move(mCurrentEvent));
}
const ImageMemoryBarrierData &layoutData =
@@ -7505,7 +7505,7 @@ void ImageHelper::updateLayoutAndBarrier(Context *context,
{
mLastNonShaderReadOnlyEvent = mCurrentEvent;
}
- garbageObjects->add(&mCurrentEvent);
+ eventCollector->emplace_back(std::move(mCurrentEvent));
}
else
{
@@ -7531,17 +7531,22 @@ void ImageHelper::setCurrentRefCountedEvent(Context *context, ImageLayoutEventMa
{
ASSERT(context->getRenderer()->getFeatures().useVkEventForImageBarrier.enabled);
+ // If there is already an event, release it first.
+ mCurrentEvent.release(context->getDevice());
+
// Create the event if we have not yet so. Otherwise just use the already created event. This
// means all images used in the same render pass that has the same layout will be tracked by the
// same event.
if (!layoutEventMaps.map[mCurrentLayout].valid())
{
- layoutEventMaps.map[mCurrentLayout].init(context, mCurrentLayout);
+ if (!layoutEventMaps.map[mCurrentLayout].init(context, mCurrentLayout))
+ {
+ // If VkEvent creation fail, we fallback to pipelineBarrier
+ return;
+ }
layoutEventMaps.mask.set(mCurrentLayout);
}
- // If there is already an event, release it first.
- mCurrentEvent.release(context->getDevice());
// Copy the event to mCurrentEvent so that we can wait for it in future. This will add extra
// refcount to the underlying VkEvent.
mCurrentEvent = layoutEventMaps.map[mCurrentLayout];
@@ -10204,6 +10209,10 @@ angle::Result ImageHelper::copySurfaceImageToBuffer(DisplayVk *displayVk,
region.imageSubresource.layerCount = layerCount;
region.imageSubresource.mipLevel = toVkLevel(sourceLevelGL).get();
+ // We may have a valid event here but we do not have a collector to collect it. Release the
+ // event here to force pipelineBarrier.
+ mCurrentEvent.release(displayVk->getDevice());
+
PrimaryCommandBuffer primaryCommandBuffer;
ANGLE_TRY(renderer->getCommandBufferOneOff(displayVk, ProtectionType::Unprotected,
&primaryCommandBuffer));
@@ -10252,6 +10261,10 @@ angle::Result ImageHelper::copyBufferToSurfaceImage(DisplayVk *displayVk,
region.imageSubresource.layerCount = layerCount;
region.imageSubresource.mipLevel = toVkLevel(sourceLevelGL).get();
+ // We may have a valid event here but we do not have a collector to collect it. Release the
+ // event here to force pipelineBarrier.
+ mCurrentEvent.release(displayVk->getDevice());
+
PrimaryCommandBuffer commandBuffer;
ANGLE_TRY(
renderer->getCommandBufferOneOff(displayVk, ProtectionType::Unprotected, &commandBuffer));
@@ -10294,13 +10307,8 @@ angle::Result ImageHelper::GetReadPixelsParams(ContextVk *contextVk,
ANGLE_VK_CHECK_MATH(contextVk, sizedFormatInfo.computeSkipBytes(type, outputPitch, 0, packState,
false, skipBytesOut));
- *skipBytesOut += (clippedArea.x - area.x) * sizedFormatInfo.pixelBytes +
- (clippedArea.y - area.y) * outputPitch;
-
- const angle::Format &angleFormat = GetFormatFromFormatType(format, type);
-
- *paramsOut = PackPixelsParams(clippedArea, angleFormat, outputPitch, packState.reverseRowOrder,
- packBuffer, 0);
+ ANGLE_TRY(GetPackPixelsParams(sizedFormatInfo, outputPitch, packState, packBuffer, area,
+ clippedArea, paramsOut, skipBytesOut));
return angle::Result::Continue;
}
diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.h b/src/libANGLE/renderer/vulkan/vk_helpers.h
index 0876d7e083..e434f12f63 100644
--- a/src/libANGLE/renderer/vulkan/vk_helpers.h
+++ b/src/libANGLE/renderer/vulkan/vk_helpers.h
@@ -1349,7 +1349,7 @@ class CommandBufferHelperCommon : angle::NonCopyable
template <typename CommandBufferT>
void flushSetEventsImpl(Context *context, CommandBufferT *commandBuffer);
- RefCountedEventGarbageObjects *getRefCountedEventGarbage() { return &mRefCountedEventGarbage; }
+ RefCountedEventCollector *getRefCountedEventCollector() { return &mRefCountedEventCollector; }
const QueueSerial &getQueueSerial() const { return mQueueSerial; }
@@ -1450,7 +1450,7 @@ class CommandBufferHelperCommon : angle::NonCopyable
// The list of RefCountedEvents that have be tracked
ImageLayoutEventMaps mRefCountedEvents;
// The list of RefCountedEvents that should be garbage collected when it gets reset.
- RefCountedEventGarbageObjects mRefCountedEventGarbage;
+ RefCountedEventCollector mRefCountedEventCollector;
};
class SecondaryCommandBufferCollector;
@@ -2559,7 +2559,7 @@ class ImageHelper final : public Resource, public angle::Subject
const QueueSerial &queueSerial,
PipelineBarrierArray *pipelineBarriers,
EventBarrierArray *eventBarriers,
- RefCountedEventGarbageObjects *garbageCollector,
+ RefCountedEventCollector *eventCollector,
VkSemaphore *semaphoreOut);
// Performs an ownership transfer from an external instance or API.
@@ -2855,7 +2855,7 @@ class ImageHelper final : public Resource, public angle::Subject
VkImageAspectFlags aspectMask,
ImageLayout newLayout,
uint32_t newQueueFamilyIndex,
- RefCountedEventGarbageObjects *garbageObjects,
+ RefCountedEventCollector *eventCollector,
CommandBufferT *commandBuffer,
VkSemaphore *acquireNextImageSemaphoreOut);
diff --git a/src/libANGLE/renderer/vulkan/vk_ref_counted_event.cpp b/src/libANGLE/renderer/vulkan/vk_ref_counted_event.cpp
index 8ee4dddba7..2390c37ba1 100644
--- a/src/libANGLE/renderer/vulkan/vk_ref_counted_event.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_ref_counted_event.cpp
@@ -15,18 +15,7 @@ namespace rx
{
namespace vk
{
-
-void ReleaseRefcountedEvent(VkDevice device, RefCountedEventAndLayoutHandle atomicRefCountedEvent)
-{
- const bool isLastReference = atomicRefCountedEvent->getAndReleaseRef() == 1;
- if (isLastReference)
- {
- atomicRefCountedEvent->get().event.destroy(device);
- SafeDelete(atomicRefCountedEvent);
- }
-}
-
-void RefCountedEvent::init(Context *context, ImageLayout layout)
+bool RefCountedEvent::init(Context *context, ImageLayout layout)
{
ASSERT(mHandle == nullptr);
ASSERT(layout != ImageLayout::Undefined);
@@ -38,31 +27,50 @@ void RefCountedEvent::init(Context *context, ImageLayout layout)
createInfo.flags = context->getFeatures().supportsSynchronization2.enabled
? VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
: 0;
- mHandle->get().event.init(context->getDevice(), createInfo);
+ VkResult result = mHandle->get().event.init(context->getDevice(), createInfo);
+ if (result != VK_SUCCESS)
+ {
+ WARN() << "event.init failed. Clean up garbage and retry again";
+ // Proactively clean up garbage and retry
+ context->getRenderer()->cleanupGarbage();
+ result = mHandle->get().event.init(context->getDevice(), createInfo);
+ if (result != VK_SUCCESS)
+ {
+ // Drivers usually can allocate huge amount of VkEvents, and we should never use that
+ // many VkEvents under normal situation. If we failed to allocate, there is a high
+ // chance that we may have a leak somewhere. This macro should help us catch such
+ // potential bugs in the bots if that happens.
+ UNREACHABLE();
+ // If still fail to create, we just return. An invalid event will trigger
+ // pipelineBarrier code path
+ return false;
+ }
+ }
mHandle->addRef();
mHandle->get().imageLayout = layout;
+ return true;
}
-// RefCountedEventGarbageObjects implementation
-void RefCountedEventGarbageObjects::add(RefCountedEvent *event)
-{
- mGarbageObjects.emplace_back(GetGarbage(event));
-}
-
-void RefCountedEventGarbageObjects::add(std::vector<RefCountedEvent> *events)
+// RefCountedEventsGarbage implementation.
+bool RefCountedEventsGarbage::destroyIfComplete(Renderer *renderer)
{
- while (!events->empty())
+ if (renderer->hasResourceUseFinished(mLifetime))
{
- mGarbageObjects.emplace_back(GetGarbage(&events->back()));
- events->pop_back();
+ for (RefCountedEvent &event : mRefCountedEvents)
+ {
+ ASSERT(event.valid());
+ event.release(renderer->getDevice());
+ ASSERT(!event.valid());
+ }
+ mRefCountedEvents.clear();
+ return true;
}
+ return false;
}
-void RefCountedEventGarbageObjects::add(const RefCountedEvent &event)
+bool RefCountedEventsGarbage::hasResourceUseSubmitted(Renderer *renderer) const
{
- RefCountedEvent localEventCopy = event;
- mGarbageObjects.emplace_back(GetGarbage(&localEventCopy));
- ASSERT(!localEventCopy.valid());
+ return renderer->hasResourceUseSubmitted(mLifetime);
}
// EventBarrier implementation.
diff --git a/src/libANGLE/renderer/vulkan/vk_ref_counted_event.h b/src/libANGLE/renderer/vulkan/vk_ref_counted_event.h
index 45a398054c..10f78c28ec 100644
--- a/src/libANGLE/renderer/vulkan/vk_ref_counted_event.h
+++ b/src/libANGLE/renderer/vulkan/vk_ref_counted_event.h
@@ -17,6 +17,7 @@
#include "common/PackedEnums.h"
#include "common/debug.h"
#include "libANGLE/renderer/serial_utils.h"
+#include "libANGLE/renderer/vulkan/vk_resource.h"
#include "libANGLE/renderer/vulkan/vk_utils.h"
#include "libANGLE/renderer/vulkan/vk_wrapper.h"
@@ -50,15 +51,11 @@ struct EventAndLayout
// pipeline stage (i.e, they have the same stageMask) will be tracked by the same event. This means
// there will be multiple objects pointing to the same event. Events are thus reference counted so
// that we do not destroy it while other objects still referencing to it.
-using RefCountedEventAndLayoutHandle = AtomicRefCounted<EventAndLayout> *;
-
-void ReleaseRefcountedEvent(VkDevice device, RefCountedEventAndLayoutHandle atomicRefCountedEvent);
-
-// Wrapper for RefCountedEventAndLayoutHandle.
-class RefCountedEvent final : public WrappedObject<RefCountedEvent, RefCountedEventAndLayoutHandle>
+class RefCountedEvent final
{
public:
- RefCountedEvent() = default;
+ RefCountedEvent() { mHandle = nullptr; }
+ ~RefCountedEvent() { ASSERT(mHandle == nullptr); }
// Move constructor moves reference of the underline object from other to this.
RefCountedEvent(RefCountedEvent &&other)
@@ -70,17 +67,16 @@ class RefCountedEvent final : public WrappedObject<RefCountedEvent, RefCountedEv
// Copy constructor adds reference to the underline object.
RefCountedEvent(const RefCountedEvent &other)
{
+ ASSERT(other.valid());
mHandle = other.mHandle;
- if (mHandle != nullptr)
- {
- mHandle->addRef();
- }
+ mHandle->addRef();
}
// Move assignment moves reference of the underline object from other to this.
RefCountedEvent &operator=(RefCountedEvent &&other)
{
ASSERT(!valid());
+ ASSERT(other.valid());
std::swap(mHandle, other.mHandle);
return *this;
}
@@ -98,19 +94,26 @@ class RefCountedEvent final : public WrappedObject<RefCountedEvent, RefCountedEv
// Returns true if both points to the same underline object.
bool operator==(const RefCountedEvent &other) const { return mHandle == other.mHandle; }
- // Create VkEvent and associated it with given layout
- void init(Context *context, ImageLayout layout);
+ // Create VkEvent and associated it with given layout. Returns true if success and false if
+ // failed.
+ bool init(Context *context, ImageLayout layout);
// Release one reference count to the underline Event object and destroy if this is the
// very last reference.
void release(VkDevice device)
{
- if (!valid())
+ if (mHandle != nullptr)
{
- return;
+ const bool isLastReference = mHandle->getAndReleaseRef() == 1;
+ if (isLastReference)
+ {
+ destroy(device);
+ }
+ else
+ {
+ mHandle = nullptr;
+ }
}
- ReleaseRefcountedEvent(device, mHandle);
- mHandle = nullptr;
}
bool valid() const { return mHandle != nullptr; }
@@ -128,13 +131,19 @@ class RefCountedEvent final : public WrappedObject<RefCountedEvent, RefCountedEv
ASSERT(valid());
return mHandle->get().imageLayout;
}
-};
-template <>
-struct HandleTypeHelper<RefCountedEvent>
-{
- constexpr static HandleType kHandleType = HandleType::RefCountedEvent;
+ private:
+ void destroy(VkDevice device)
+ {
+ ASSERT(mHandle != nullptr);
+ ASSERT(!mHandle->isReferenced());
+ mHandle->get().event.destroy(device);
+ SafeDelete(mHandle);
+ }
+
+ AtomicRefCounted<EventAndLayout> *mHandle;
};
+using RefCountedEventCollector = std::vector<RefCountedEvent>;
// This class tracks a vector of RefcountedEvent garbage. For performance reason, instead of
// individually tracking each VkEvent garbage, we collect all events that are accessed in the
@@ -143,24 +152,65 @@ struct HandleTypeHelper<RefCountedEvent>
// decrement the refCount and destroy event only when last refCount goes away. Basically all GPU
// usage will use one refCount and that refCount ensures we never destroy event until GPU is
// finished.
-class RefCountedEventGarbageObjects final
+class RefCountedEventsGarbage final
{
public:
+ RefCountedEventsGarbage() = default;
+ ~RefCountedEventsGarbage() = default;
+
+ RefCountedEventsGarbage(const QueueSerial &queueSerial,
+ RefCountedEventCollector &&refCountedEvents)
+ : mLifetime(queueSerial), mRefCountedEvents(std::move(refCountedEvents))
+ {
+ ASSERT(refCountedEvents.empty());
+ ASSERT(!mRefCountedEvents.empty());
+ }
+
+ RefCountedEventsGarbage(RefCountedEventsGarbage &&other)
+ : mLifetime(other.mLifetime), mRefCountedEvents(std::move(other.mRefCountedEvents))
+ {}
+
+ RefCountedEventsGarbage &operator=(RefCountedEventsGarbage &&other)
+ {
+ ASSERT(mRefCountedEvents.empty());
+ mLifetime = other.mLifetime;
+ mRefCountedEvents = std::move(other.mRefCountedEvents);
+ return *this;
+ }
+
+ bool destroyIfComplete(Renderer *renderer);
+ bool hasResourceUseSubmitted(Renderer *renderer) const;
+ VkDeviceSize getSize() const { return mRefCountedEvents.size(); }
+
// Move event to the garbage list
- void add(RefCountedEvent *event);
+ void add(RefCountedEvent &&event) { mRefCountedEvents.emplace_back(std::move(event)); }
+
// Move the vector of events to the garbage list
- void add(std::vector<RefCountedEvent> *events);
+ void add(RefCountedEventCollector &&events)
+ {
+ mRefCountedEvents.reserve(mRefCountedEvents.size() + events.size());
+ for (RefCountedEvent &event : events)
+ {
+ mRefCountedEvents.emplace_back(std::move(event));
+ }
+ events.clear();
+ }
// Make a copy of event (which adds another refcount to the VkEvent) and add the copied event to
// the garbages
- void add(const RefCountedEvent &event);
-
- bool empty() const { return mGarbageObjects.empty(); }
+ void add(const RefCountedEvent &event)
+ {
+ RefCountedEvent localEventCopy = event;
+ mRefCountedEvents.emplace_back(std::move(localEventCopy));
+ ASSERT(!localEventCopy.valid());
+ ASSERT(event.valid());
+ }
- GarbageObjects &&release() { return std::move(mGarbageObjects); }
+ bool empty() const { return mRefCountedEvents.empty(); }
private:
- GarbageObjects mGarbageObjects;
+ ResourceUse mLifetime;
+ RefCountedEventCollector mRefCountedEvents;
};
// This wraps data and API for vkCmdWaitEvent call
diff --git a/src/libANGLE/renderer/vulkan/vk_renderer.cpp b/src/libANGLE/renderer/vulkan/vk_renderer.cpp
index 177a4fcb3e..4c4a49d719 100644
--- a/src/libANGLE/renderer/vulkan/vk_renderer.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_renderer.cpp
@@ -284,8 +284,6 @@ constexpr const char *kSkippedMessages[] = {
// https://issuetracker.google.com/336847261
"VUID-VkImageCreateInfo-pNext-02397",
"VUID-vkCmdDraw-None-06550",
- // https://anglebug.com/8680
- "VUID-VkSwapchainCreateInfoKHR-presentMode-02839",
};
// Validation messages that should be ignored only when VK_EXT_primitive_topology_list_restart is
@@ -1496,7 +1494,8 @@ Renderer::~Renderer() {}
bool Renderer::hasSharedGarbage()
{
- return !mSharedGarbageList.empty() || !mSuballocationGarbageList.empty();
+ return !mSharedGarbageList.empty() || !mSuballocationGarbageList.empty() ||
+ !mRefCountedEventGarbageList.empty();
}
void Renderer::onDestroy(vk::Context *context)
@@ -1695,7 +1694,12 @@ angle::Result Renderer::enableInstanceExtensions(vk::Context *context,
mEnabledInstanceExtensions.push_back(VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME);
}
- if (ExtensionFound(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME, instanceExtensionNames))
+ ANGLE_FEATURE_CONDITION(
+ &mFeatures, supportsSurfaceMaintenance1,
+ !isMockICDEnabled() && ExtensionFound(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
+ instanceExtensionNames));
+
+ if (mFeatures.supportsSurfaceMaintenance1.enabled)
{
mEnabledInstanceExtensions.push_back(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME);
}
@@ -5502,6 +5506,8 @@ void Renderer::cleanupGarbage()
// Note: do this after clean up mSuballocationGarbageList so that we will have more chances to
// find orphaned blocks being empty.
mOrphanedBufferBlockList.pruneEmptyBufferBlocks(this);
+ // Clean up event garbages
+ mRefCountedEventGarbageList.cleanupSubmittedGarbage(this);
}
void Renderer::cleanupPendingSubmissionGarbage()
@@ -5509,6 +5515,7 @@ void Renderer::cleanupPendingSubmissionGarbage()
// Check if pending garbage is still pending. If not, move them to the garbage list.
mSharedGarbageList.cleanupUnsubmittedGarbage(this);
mSuballocationGarbageList.cleanupUnsubmittedGarbage(this);
+ mRefCountedEventGarbageList.cleanupUnsubmittedGarbage(this);
}
void Renderer::onNewValidationMessage(const std::string &message)
diff --git a/src/libANGLE/renderer/vulkan/vk_renderer.h b/src/libANGLE/renderer/vulkan/vk_renderer.h
index 9e6b580fd0..228da259fd 100644
--- a/src/libANGLE/renderer/vulkan/vk_renderer.h
+++ b/src/libANGLE/renderer/vulkan/vk_renderer.h
@@ -339,12 +339,12 @@ class Renderer : angle::NonCopyable
mSuballocationGarbageList.add(this, std::move(garbage));
}
- void collectRefCountedEventGarbage(const QueueSerial &queueSerial,
- vk::RefCountedEventGarbageObjects &&garbageObjets)
+ void collectRefCountedEventsGarbage(const QueueSerial &queueSerial,
+ vk::RefCountedEventCollector &&refCountedEvents)
{
- ASSERT(!garbageObjets.empty());
- vk::SharedGarbage garbage(vk::ResourceUse(queueSerial), std::move(garbageObjets.release()));
- mSharedGarbageList.add(this, std::move(garbage));
+ ASSERT(!refCountedEvents.empty());
+ vk::RefCountedEventsGarbage garbage(queueSerial, std::move(refCountedEvents));
+ mRefCountedEventGarbageList.add(this, std::move(garbage));
}
angle::Result getPipelineCache(vk::Context *context, vk::PipelineCacheAccess *pipelineCacheOut);
@@ -957,6 +957,8 @@ class Renderer : angle::NonCopyable
vk::SharedGarbageList<vk::BufferSuballocationGarbage> mSuballocationGarbageList;
// Holds orphaned BufferBlocks when ShareGroup gets destroyed
vk::BufferBlockGarbageList mOrphanedBufferBlockList;
+ // Holds RefCountedEvent garbage
+ vk::SharedGarbageList<vk::RefCountedEventsGarbage> mRefCountedEventGarbageList;
VkDeviceSize mPendingGarbageSizeLimit;
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.cpp b/src/libANGLE/renderer/vulkan/vk_utils.cpp
index d49bdccf81..3c4390f7a1 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -715,9 +715,6 @@ void GarbageObject::destroy(Renderer *renderer)
case HandleType::PipelineLayout:
vkDestroyPipelineLayout(device, (VkPipelineLayout)mHandle, nullptr);
break;
- case HandleType::RefCountedEvent:
- ReleaseRefcountedEvent(device, (RefCountedEventAndLayoutHandle)mHandle);
- break;
case HandleType::RenderPass:
vkDestroyRenderPass(device, (VkRenderPass)mHandle, nullptr);
break;
diff --git a/src/libANGLE/renderer/vulkan/vk_wrapper.h b/src/libANGLE/renderer/vulkan/vk_wrapper.h
index 2517bc6988..42c2bb96ef 100644
--- a/src/libANGLE/renderer/vulkan/vk_wrapper.h
+++ b/src/libANGLE/renderer/vulkan/vk_wrapper.h
@@ -61,7 +61,6 @@ enum class HandleType
{
Invalid,
CommandBuffer,
- RefCountedEvent,
ANGLE_HANDLE_TYPES_X(ANGLE_COMMA_SEP_FUNC) EnumCount
};
diff --git a/src/libANGLE/renderer/wgpu/ContextWgpu.cpp b/src/libANGLE/renderer/wgpu/ContextWgpu.cpp
index 4987c8e885..0e5ca07298 100644
--- a/src/libANGLE/renderer/wgpu/ContextWgpu.cpp
+++ b/src/libANGLE/renderer/wgpu/ContextWgpu.cpp
@@ -44,66 +44,6 @@ constexpr angle::PackedEnumMap<webgpu::RenderPassClosureReason, const char *>
"Render pass closed due to starting a new render pass"},
}};
-bool RenderPassColorAttachmentEqual(const wgpu::RenderPassColorAttachment &attachment1,
- const wgpu::RenderPassColorAttachment &attachment2)
-{
-
- if (attachment1.nextInChain != nullptr || attachment2.nextInChain != nullptr)
- {
- return false;
- }
-
- return attachment1.view.Get() == attachment2.view.Get() &&
- attachment1.depthSlice == attachment2.depthSlice &&
- attachment1.resolveTarget.Get() == attachment2.resolveTarget.Get() &&
- attachment1.loadOp == attachment2.loadOp && attachment1.storeOp == attachment2.storeOp &&
- attachment1.clearValue.r == attachment2.clearValue.r &&
- attachment1.clearValue.g == attachment2.clearValue.g &&
- attachment1.clearValue.b == attachment2.clearValue.b &&
- attachment1.clearValue.a == attachment2.clearValue.a;
-}
-
-bool RenderPassDepthStencilAttachmentEqual(
- const wgpu::RenderPassDepthStencilAttachment &attachment1,
- const wgpu::RenderPassDepthStencilAttachment &attachment2)
-{
- return attachment1.view.Get() == attachment2.view.Get() &&
- attachment1.depthLoadOp == attachment2.depthLoadOp &&
- attachment1.depthStoreOp == attachment2.depthStoreOp &&
- attachment1.depthClearValue == attachment2.depthClearValue &&
- attachment1.stencilLoadOp == attachment2.stencilLoadOp &&
- attachment1.stencilStoreOp == attachment2.stencilStoreOp &&
- attachment1.stencilClearValue == attachment2.stencilClearValue &&
- attachment1.stencilReadOnly == attachment2.stencilReadOnly;
-}
-
-bool RenderPassDescEqual(const wgpu::RenderPassDescriptor &desc1,
- const wgpu::RenderPassDescriptor &desc2)
-{
-
- if (desc1.nextInChain != nullptr || desc2.nextInChain != nullptr)
- {
- return false;
- }
-
- if (desc1.colorAttachmentCount != desc2.colorAttachmentCount)
- {
- return false;
- }
-
- for (uint32_t i = 0; i < desc1.colorAttachmentCount; ++i)
- {
- if (!RenderPassColorAttachmentEqual(desc1.colorAttachments[i], desc2.colorAttachments[i]))
- {
- return false;
- }
- }
-
- // TODO(anglebug.com/8582): for now ignore `occlusionQuerySet` and `timestampWrites`.
-
- return RenderPassDepthStencilAttachmentEqual(*desc1.depthStencilAttachment,
- *desc2.depthStencilAttachment);
-}
} // namespace
ContextWgpu::ContextWgpu(const gl::State &state, gl::ErrorSet *errorSet, DisplayWgpu *display)
@@ -600,31 +540,19 @@ void ContextWgpu::handleError(GLenum errorCode,
mErrors->handleError(errorCode, errorStream.str().c_str(), file, function, line);
}
-angle::Result ContextWgpu::ensureRenderPassStarted(const wgpu::RenderPassDescriptor &desc)
+angle::Result ContextWgpu::startRenderPass(const wgpu::RenderPassDescriptor &desc)
{
- if (!mCurrentCommandEncoder)
- {
- mCurrentCommandEncoder = getDevice().CreateCommandEncoder(nullptr);
- }
- if (mCurrentRenderPass)
- {
- // TODO(anglebug.com/8582): this should eventually ignore load and store operations so we
- // can avoid starting a new render pass in more situations.
- if (RenderPassDescEqual(mCurrentRenderPassDesc, desc))
- {
- return angle::Result::Continue;
- }
- ANGLE_TRY(endRenderPass(webgpu::RenderPassClosureReason::NewRenderPass));
- }
+ mCurrentCommandEncoder = getDevice().CreateCommandEncoder(nullptr);
mCurrentRenderPass = mCurrentCommandEncoder.BeginRenderPass(&desc);
- mCurrentRenderPassDesc = desc;
-
return angle::Result::Continue;
}
angle::Result ContextWgpu::endRenderPass(webgpu::RenderPassClosureReason closure_reason)
{
-
+ if (!mCurrentRenderPass)
+ {
+ return angle::Result::Continue;
+ }
const char *reasonText = kRenderPassClosureReason[closure_reason];
INFO() << reasonText;
mCurrentRenderPass.End();
diff --git a/src/libANGLE/renderer/wgpu/ContextWgpu.h b/src/libANGLE/renderer/wgpu/ContextWgpu.h
index 7fb82a6d99..6470abe804 100644
--- a/src/libANGLE/renderer/wgpu/ContextWgpu.h
+++ b/src/libANGLE/renderer/wgpu/ContextWgpu.h
@@ -262,7 +262,7 @@ class ContextWgpu : public ContextImpl
wgpu::Device &getDevice() { return mDisplay->getDevice(); }
wgpu::Queue &getQueue() { return mDisplay->getQueue(); }
angle::ImageLoadContext &getImageLoadContext() { return mImageLoadContext; }
- angle::Result ensureRenderPassStarted(const wgpu::RenderPassDescriptor &desc);
+ angle::Result startRenderPass(const wgpu::RenderPassDescriptor &desc);
angle::Result endRenderPass(webgpu::RenderPassClosureReason closure_reason);
angle::Result flush();
@@ -280,7 +280,6 @@ class ContextWgpu : public ContextImpl
wgpu::CommandEncoder mCurrentCommandEncoder;
wgpu::RenderPassEncoder mCurrentRenderPass;
- wgpu::RenderPassDescriptor mCurrentRenderPassDesc;
};
} // namespace rx
diff --git a/src/libANGLE/renderer/wgpu/FramebufferWgpu.cpp b/src/libANGLE/renderer/wgpu/FramebufferWgpu.cpp
index 24709ebfd3..957579abaf 100644
--- a/src/libANGLE/renderer/wgpu/FramebufferWgpu.cpp
+++ b/src/libANGLE/renderer/wgpu/FramebufferWgpu.cpp
@@ -19,6 +19,62 @@
namespace rx
{
+namespace
+{
+bool CompareColorRenderPassAttachments(const wgpu::RenderPassColorAttachment &attachment1,
+ const wgpu::RenderPassColorAttachment &attachment2)
+{
+
+ if (attachment1.nextInChain != nullptr || attachment2.nextInChain != nullptr)
+ {
+ return false;
+ }
+
+ return attachment1.view.Get() == attachment2.view.Get() &&
+ attachment1.depthSlice == attachment2.depthSlice &&
+ attachment1.resolveTarget.Get() == attachment2.resolveTarget.Get() &&
+ attachment1.loadOp == attachment2.loadOp && attachment1.storeOp == attachment2.storeOp &&
+ attachment1.clearValue.r == attachment2.clearValue.r &&
+ attachment1.clearValue.g == attachment2.clearValue.g &&
+ attachment1.clearValue.b == attachment2.clearValue.b &&
+ attachment1.clearValue.a == attachment2.clearValue.a;
+}
+
+bool CompareColorRenderPassAttachmentVectors(
+ const std::vector<wgpu::RenderPassColorAttachment> &attachments1,
+ const std::vector<wgpu::RenderPassColorAttachment> &attachments2)
+{
+ if (attachments1.size() != attachments2.size())
+ {
+ return false;
+ }
+
+ for (uint32_t i = 0; i < attachments1.size(); ++i)
+ {
+ if (!CompareColorRenderPassAttachments(attachments1[i], attachments2[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool CompareDepthStencilRenderPassAttachments(
+ const wgpu::RenderPassDepthStencilAttachment &attachment1,
+ const wgpu::RenderPassDepthStencilAttachment &attachment2)
+{
+ return attachment1.view.Get() == attachment2.view.Get() &&
+ attachment1.depthLoadOp == attachment2.depthLoadOp &&
+ attachment1.depthStoreOp == attachment2.depthStoreOp &&
+ attachment1.depthClearValue == attachment2.depthClearValue &&
+ attachment1.stencilLoadOp == attachment2.stencilLoadOp &&
+ attachment1.stencilStoreOp == attachment2.stencilStoreOp &&
+ attachment1.stencilClearValue == attachment2.stencilClearValue &&
+ attachment1.stencilReadOnly == attachment2.stencilReadOnly;
+}
+} // namespace
+
FramebufferWgpu::FramebufferWgpu(const gl::FramebufferState &state) : FramebufferImpl(state) {}
FramebufferWgpu::~FramebufferWgpu() {}
@@ -56,8 +112,7 @@ angle::Result FramebufferWgpu::clear(const gl::Context *context, GLbitfield mask
ContextWgpu *contextWgpu = GetImplAs<ContextWgpu>(context);
gl::ColorF colorClearValue = context->getState().getColorClearValue();
- std::vector<wgpu::RenderPassColorAttachment> colorAttachments(
- mState.getEnabledDrawBuffers().count());
+ std::vector<wgpu::RenderPassColorAttachment> colorAttachments;
for (size_t enabledDrawBuffer : mState.getEnabledDrawBuffers())
{
wgpu::RenderPassColorAttachment colorAttachment;
@@ -73,12 +128,19 @@ angle::Result FramebufferWgpu::clear(const gl::Context *context, GLbitfield mask
colorAttachments.push_back(colorAttachment);
}
- wgpu::RenderPassDescriptor renderPassDesc;
- renderPassDesc.colorAttachmentCount = colorAttachments.size();
- renderPassDesc.colorAttachments = colorAttachments.data();
+ // Attempt to end a render pass if one has already been started.
+ ANGLE_UNUSED_VARIABLE(CompareDepthStencilRenderPassAttachments);
+ if (!CompareColorRenderPassAttachmentVectors(mCurrentColorAttachments, colorAttachments))
+ {
+ ANGLE_TRY(contextWgpu->endRenderPass(webgpu::RenderPassClosureReason::NewRenderPass));
+
+ mCurrentColorAttachments = std::move(colorAttachments);
+ mCurrentRenderPassDesc.colorAttachmentCount = mCurrentColorAttachments.size();
+ mCurrentRenderPassDesc.colorAttachments = mCurrentColorAttachments.data();
+ }
// TODO(anglebug.com/8582): optimize this implementation.
- ANGLE_TRY(contextWgpu->ensureRenderPassStarted(renderPassDesc));
+ ANGLE_TRY(contextWgpu->startRenderPass(mCurrentRenderPassDesc));
ANGLE_TRY(contextWgpu->endRenderPass(webgpu::RenderPassClosureReason::NewRenderPass));
ANGLE_TRY(contextWgpu->flush());
return angle::Result::Continue;
@@ -139,38 +201,25 @@ angle::Result FramebufferWgpu::readPixels(const gl::Context *context,
// Clip read area to framebuffer.
const gl::Extents fbSize = getState().getReadPixelsAttachment(format)->getSize();
const gl::Rectangle fbRect(0, 0, fbSize.width, fbSize.height);
- gl::Rectangle area;
- if (!ClipRectangle(origArea, fbRect, &area))
+ gl::Rectangle clippedArea;
+ if (!ClipRectangle(origArea, fbRect, &clippedArea))
{
// nothing to read
return angle::Result::Continue;
}
- // Compute size of unclipped rows and initial skip
- const gl::InternalFormat &glFormat = gl::GetInternalFormatInfo(format, type);
-
ContextWgpu *contextWgpu = GetImplAs<ContextWgpu>(context);
-
- GLuint rowBytes = 0;
- ANGLE_CHECK_GL_MATH(contextWgpu, glFormat.computeRowPitch(type, origArea.width, pack.alignment,
- pack.rowLength, &rowBytes));
-
- GLuint skipBytes = 0;
- ANGLE_CHECK_GL_MATH(contextWgpu,
- glFormat.computeSkipBytes(type, rowBytes, 0, pack, false, &skipBytes));
- pixels += skipBytes;
-
- // Skip OOB region up to first in bounds pixel
- int leftClip = area.x - origArea.x;
- int topClip = area.y - origArea.y;
- pixels += leftClip * glFormat.pixelBytes + topClip * rowBytes;
-
- // Write the in-bounds readpixels data with non-zero values
- for (GLint y = area.y; y < area.y + area.height; ++y)
- {
- memset(pixels, 42, glFormat.pixelBytes * area.width);
- pixels += rowBytes;
- }
+ GLuint outputSkipBytes = 0;
+ PackPixelsParams params;
+ const angle::Format &angleFormat = GetFormatFromFormatType(format, type);
+ ANGLE_TRY(webgpu::ImageHelper::getReadPixelsParams(contextWgpu, pack, packBuffer, format, type,
+ origArea, clippedArea, &params,
+ &outputSkipBytes));
+
+ RenderTargetWgpu *renderTarget = getReadPixelsRenderTarget(angleFormat);
+ ANGLE_TRY(
+ renderTarget->getImage()->readPixels(contextWgpu, params.area, params, angleFormat,
+ static_cast<uint8_t *>(pixels) + outputSkipBytes));
return angle::Result::Continue;
}
@@ -252,4 +301,13 @@ angle::Result FramebufferWgpu::getSamplePosition(const gl::Context *context,
return angle::Result::Continue;
}
+RenderTargetWgpu *FramebufferWgpu::getReadPixelsRenderTarget(const angle::Format &format) const
+{
+ if (format.hasDepthOrStencilBits())
+ {
+ return mRenderTargetCache.getDepthStencil();
+ }
+ return mRenderTargetCache.getColorRead(mState);
+}
+
} // namespace rx
diff --git a/src/libANGLE/renderer/wgpu/FramebufferWgpu.h b/src/libANGLE/renderer/wgpu/FramebufferWgpu.h
index d4262f85eb..5376da8bb5 100644
--- a/src/libANGLE/renderer/wgpu/FramebufferWgpu.h
+++ b/src/libANGLE/renderer/wgpu/FramebufferWgpu.h
@@ -78,8 +78,12 @@ class FramebufferWgpu : public FramebufferImpl
size_t index,
GLfloat *xy) const override;
+ RenderTargetWgpu *getReadPixelsRenderTarget(const angle::Format &format) const;
+
private:
RenderTargetCache<RenderTargetWgpu> mRenderTargetCache;
+ wgpu::RenderPassDescriptor mCurrentRenderPassDesc;
+ std::vector<wgpu::RenderPassColorAttachment> mCurrentColorAttachments;
};
} // namespace rx
diff --git a/src/libANGLE/renderer/wgpu/TextureWgpu.cpp b/src/libANGLE/renderer/wgpu/TextureWgpu.cpp
index 98a524fbb8..027c3a8053 100644
--- a/src/libANGLE/renderer/wgpu/TextureWgpu.cpp
+++ b/src/libANGLE/renderer/wgpu/TextureWgpu.cpp
@@ -416,7 +416,7 @@ angle::Result TextureWgpu::initializeImage(ContextWgpu *contextWgpu, ImageMipLev
displayWgpu->getDevice(), firstLevel,
mImage->createTextureDescriptor(textureUsage, textureDimension,
gl_wgpu::getExtent3D(firstLevelExtents),
- wgpu::TextureFormat::RGBA8Uint, levelCount, 1, 0));
+ wgpu::TextureFormat::RGBA8Unorm, levelCount, 1));
}
angle::Result TextureWgpu::redefineLevel(const gl::Context *context,
diff --git a/src/libANGLE/renderer/wgpu/wgpu_helpers.cpp b/src/libANGLE/renderer/wgpu/wgpu_helpers.cpp
index 364c7d46e9..d679ecb664 100644
--- a/src/libANGLE/renderer/wgpu/wgpu_helpers.cpp
+++ b/src/libANGLE/renderer/wgpu/wgpu_helpers.cpp
@@ -15,7 +15,11 @@ namespace rx
{
namespace webgpu
{
-ImageHelper::ImageHelper() {}
+ImageHelper::ImageHelper()
+{
+ // TODO: support more TextureFormats.
+ mViewFormats.push_back(wgpu::TextureFormat::RGBA8Unorm);
+}
ImageHelper::~ImageHelper() {}
@@ -33,6 +37,10 @@ angle::Result ImageHelper::initImage(wgpu::Device &device,
void ImageHelper::flushStagedUpdates(ContextWgpu *contextWgpu)
{
+ if (mBufferQueue.empty())
+ {
+ return;
+ }
wgpu::Device device = contextWgpu->getDevice();
wgpu::Queue queue = contextWgpu->getQueue();
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
@@ -51,6 +59,7 @@ void ImageHelper::flushStagedUpdates(ContextWgpu *contextWgpu)
}
wgpu::CommandBuffer commandBuffer = encoder.Finish();
queue.Submit(1, &commandBuffer);
+ encoder = nullptr;
mBufferQueue.clear();
}
@@ -59,8 +68,7 @@ wgpu::TextureDescriptor ImageHelper::createTextureDescriptor(wgpu::TextureUsage
wgpu::Extent3D size,
wgpu::TextureFormat format,
std::uint32_t mipLevelCount,
- std::uint32_t sampleCount,
- std::size_t viewFormatCount)
+ std::uint32_t sampleCount)
{
wgpu::TextureDescriptor textureDescriptor = {};
textureDescriptor.usage = usage;
@@ -69,7 +77,8 @@ wgpu::TextureDescriptor ImageHelper::createTextureDescriptor(wgpu::TextureUsage
textureDescriptor.format = format;
textureDescriptor.mipLevelCount = mipLevelCount;
textureDescriptor.sampleCount = sampleCount;
- textureDescriptor.viewFormatCount = viewFormatCount;
+ textureDescriptor.viewFormatCount = mViewFormats.size();
+ textureDescriptor.viewFormats = reinterpret_cast<wgpu::TextureFormat *>(mViewFormats.data());
return textureDescriptor;
}
@@ -129,6 +138,79 @@ void ImageHelper::resetImage()
mInitialized = false;
mFirstAllocatedLevel = gl::LevelIndex(0);
}
+// static
+angle::Result ImageHelper::getReadPixelsParams(rx::ContextWgpu *contextWgpu,
+ const gl::PixelPackState &packState,
+ gl::Buffer *packBuffer,
+ GLenum format,
+ GLenum type,
+ const gl::Rectangle &area,
+ const gl::Rectangle &clippedArea,
+ rx::PackPixelsParams *paramsOut,
+ GLuint *skipBytesOut)
+{
+ const gl::InternalFormat &sizedFormatInfo = gl::GetInternalFormatInfo(format, type);
+
+ GLuint outputPitch = 0;
+ ANGLE_CHECK_GL_MATH(contextWgpu,
+ sizedFormatInfo.computeRowPitch(type, area.width, packState.alignment,
+ packState.rowLength, &outputPitch));
+ ANGLE_CHECK_GL_MATH(contextWgpu, sizedFormatInfo.computeSkipBytes(
+ type, outputPitch, 0, packState, false, skipBytesOut));
+
+ ANGLE_TRY(GetPackPixelsParams(sizedFormatInfo, outputPitch, packState, packBuffer, area,
+ clippedArea, paramsOut, skipBytesOut));
+ return angle::Result::Continue;
+}
+
+angle::Result ImageHelper::readPixels(rx::ContextWgpu *contextWgpu,
+ const gl::Rectangle &area,
+ const rx::PackPixelsParams &packPixelsParams,
+ const angle::Format &aspectFormat,
+ void *pixels)
+{
+ wgpu::Device device = contextWgpu->getDisplay()->getDevice();
+ wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
+ wgpu::Queue queue = contextWgpu->getDisplay()->getQueue();
+ BufferHelper bufferHelper;
+ uint32_t textureBytesPerRow =
+ roundUp(aspectFormat.pixelBytes * area.width, kCopyBufferAlignment);
+ wgpu::TextureDataLayout textureDataLayout;
+ textureDataLayout.bytesPerRow = textureBytesPerRow;
+ textureDataLayout.rowsPerImage = area.height;
+
+ size_t allocationSize = textureBytesPerRow * area.height;
+
+ ANGLE_TRY(bufferHelper.initBuffer(device, allocationSize,
+ wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst,
+ MapAtCreation::No));
+ wgpu::ImageCopyBuffer copyBuffer;
+ copyBuffer.buffer = bufferHelper.getBuffer();
+ copyBuffer.layout = textureDataLayout;
+
+ wgpu::ImageCopyTexture copyTexture;
+ wgpu::Origin3D textureOrigin;
+ textureOrigin.x = area.x;
+ textureOrigin.y = area.y;
+ copyTexture.origin = textureOrigin;
+ copyTexture.texture = mTexture;
+ copyTexture.mipLevel = toWgpuLevel(mFirstAllocatedLevel).get();
+
+ wgpu::Extent3D copySize;
+ copySize.width = area.width;
+ copySize.height = area.height;
+ encoder.CopyTextureToBuffer(&copyTexture, &copyBuffer, &copySize);
+
+ wgpu::CommandBuffer commandBuffer = encoder.Finish();
+ queue.Submit(1, &commandBuffer);
+ encoder = nullptr;
+
+ ANGLE_TRY(bufferHelper.mapImmediate(contextWgpu, wgpu::MapMode::Read, 0, allocationSize));
+ const uint8_t *readPixelBuffer = bufferHelper.getMapReadPointer(0, allocationSize);
+ PackPixels(packPixelsParams, aspectFormat, textureBytesPerRow, readPixelBuffer,
+ static_cast<uint8_t *>(pixels));
+ return angle::Result::Continue;
+}
gl::LevelIndex ImageHelper::getLastAllocatedLevel()
{
@@ -240,6 +322,20 @@ uint8_t *BufferHelper::getMapWritePointer(size_t offset, size_t size) const
return static_cast<uint8_t *>(mapPtr);
}
+const uint8_t *BufferHelper::getMapReadPointer(size_t offset, size_t size) const
+{
+ ASSERT(mBuffer.GetMapState() == wgpu::BufferMapState::Mapped);
+ ASSERT(mMappedState.has_value());
+ ASSERT(mMappedState->offset <= offset);
+ ASSERT(mMappedState->offset + mMappedState->size >= offset + size);
+
+ // GetConstMappedRange is used for reads whereas GetMappedRange is only used for writes.
+ const void *mapPtr = mBuffer.GetConstMappedRange(offset, size);
+ ASSERT(mapPtr);
+
+ return static_cast<const uint8_t *>(mapPtr);
+}
+
const std::optional<BufferMapState> &BufferHelper::getMappedState() const
{
return mMappedState;
diff --git a/src/libANGLE/renderer/wgpu/wgpu_helpers.h b/src/libANGLE/renderer/wgpu/wgpu_helpers.h
index 6b042c9962..8da3cec690 100644
--- a/src/libANGLE/renderer/wgpu/wgpu_helpers.h
+++ b/src/libANGLE/renderer/wgpu/wgpu_helpers.h
@@ -24,6 +24,10 @@ class ContextWgpu;
namespace webgpu
{
+// WebGPU requires copy buffers bytesPerRow to be aligned to 256.
+// https://www.w3.org/TR/webgpu/#abstract-opdef-validating-gpuimagecopybuffer
+static const GLuint kCopyBufferAlignment = 256;
+
struct QueuedDataUpload
{
wgpu::ImageCopyBuffer buffer;
@@ -49,8 +53,7 @@ class ImageHelper
wgpu::Extent3D size,
wgpu::TextureFormat format,
std::uint32_t mipLevelCount,
- std::uint32_t sampleCount,
- std::size_t viewFormatCount);
+ std::uint32_t sampleCount);
angle::Result stageTextureUpload(ContextWgpu *contextWgpu,
const gl::Extents &glExtents,
@@ -66,6 +69,21 @@ class ImageHelper
void resetImage();
+ static angle::Result getReadPixelsParams(rx::ContextWgpu *contextWgpu,
+ const gl::PixelPackState &packState,
+ gl::Buffer *packBuffer,
+ GLenum format,
+ GLenum type,
+ const gl::Rectangle &area,
+ const gl::Rectangle &clippedArea,
+ rx::PackPixelsParams *paramsOut,
+ GLuint *skipBytesOut);
+
+ angle::Result readPixels(rx::ContextWgpu *contextWgpu,
+ const gl::Rectangle &area,
+ const rx::PackPixelsParams &packPixelsParams,
+ const angle::Format &aspectFormat,
+ void *pixels);
LevelIndex toWgpuLevel(gl::LevelIndex levelIndexGl) const;
gl::LevelIndex toGlLevel(LevelIndex levelIndexWgpu) const;
bool isTextureLevelInAllocatedImage(gl::LevelIndex textureLevel);
@@ -81,7 +99,8 @@ class ImageHelper
private:
wgpu::Texture mTexture;
wgpu::TextureDescriptor mTextureDescriptor = {};
- bool mInitialized = false;
+ std::vector<wgpu::TextureFormat> mViewFormats;
+ bool mInitialized = false;
gl::LevelIndex mFirstAllocatedLevel = gl::LevelIndex(0);
@@ -121,6 +140,7 @@ class BufferHelper : public angle::NonCopyable
angle::Result unmap();
uint8_t *getMapWritePointer(size_t offset, size_t size) const;
+ const uint8_t *getMapReadPointer(size_t offset, size_t size) const;
const std::optional<BufferMapState> &getMappedState() const;
diff --git a/src/libANGLE/validationEGL.cpp b/src/libANGLE/validationEGL.cpp
index f56f90d32b..18404cc50a 100644
--- a/src/libANGLE/validationEGL.cpp
+++ b/src/libANGLE/validationEGL.cpp
@@ -6977,4 +6977,17 @@ bool ValidateReleaseExternalContextANGLE(const ValidationContext *val, const egl
return true;
}
+
+bool ValidateSetValidationEnabledANGLE(const ValidationContext *val, EGLBoolean validationState)
+{
+ const ClientExtensions &clientExtensions = Display::GetClientExtensions();
+ if (!clientExtensions.noErrorANGLE)
+ {
+ val->setError(EGL_BAD_ACCESS, "EGL_ANGLE_no_error is not available.");
+ return false;
+ }
+
+ return true;
+}
+
} // namespace egl
diff --git a/src/libANGLE/validationEGL_autogen.h b/src/libANGLE/validationEGL_autogen.h
index db09bc922d..c063ebe1e5 100644
--- a/src/libANGLE/validationEGL_autogen.h
+++ b/src/libANGLE/validationEGL_autogen.h
@@ -254,6 +254,9 @@ bool ValidateCopyMetalSharedEventANGLE(const ValidationContext *val,
const egl::Display *dpyPacked,
egl::SyncID syncPacked);
+// EGL_ANGLE_no_error
+bool ValidateSetValidationEnabledANGLE(const ValidationContext *val, EGLBoolean validationState);
+
// EGL_ANGLE_power_preference
bool ValidateReleaseHighPowerGPUANGLE(const ValidationContext *val,
const egl::Display *dpyPacked,
diff --git a/src/libEGL/egl_loader_autogen.cpp b/src/libEGL/egl_loader_autogen.cpp
index b0c220d5a9..28a2759c57 100644
--- a/src/libEGL/egl_loader_autogen.cpp
+++ b/src/libEGL/egl_loader_autogen.cpp
@@ -72,6 +72,7 @@ PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC l_EGL_ReleaseExternalContextANGLE;
PFNEGLQUERYDISPLAYATTRIBANGLEPROC l_EGL_QueryDisplayAttribANGLE;
PFNEGLQUERYSTRINGIANGLEPROC l_EGL_QueryStringiANGLE;
PFNEGLCOPYMETALSHAREDEVENTANGLEPROC l_EGL_CopyMetalSharedEventANGLE;
+PFNEGLSETVALIDATIONENABLEDANGLEPROC l_EGL_SetValidationEnabledANGLE;
PFNEGLFORCEGPUSWITCHANGLEPROC l_EGL_ForceGPUSwitchANGLE;
PFNEGLHANDLEGPUSWITCHANGLEPROC l_EGL_HandleGPUSwitchANGLE;
PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC l_EGL_ReacquireHighPowerGPUANGLE;
@@ -223,6 +224,8 @@ void LoadLibEGL_EGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYSTRINGIANGLEPROC>(loadProc("EGL_QueryStringiANGLE"));
l_EGL_CopyMetalSharedEventANGLE = reinterpret_cast<PFNEGLCOPYMETALSHAREDEVENTANGLEPROC>(
loadProc("EGL_CopyMetalSharedEventANGLE"));
+ l_EGL_SetValidationEnabledANGLE = reinterpret_cast<PFNEGLSETVALIDATIONENABLEDANGLEPROC>(
+ loadProc("EGL_SetValidationEnabledANGLE"));
l_EGL_ForceGPUSwitchANGLE =
reinterpret_cast<PFNEGLFORCEGPUSWITCHANGLEPROC>(loadProc("EGL_ForceGPUSwitchANGLE"));
l_EGL_HandleGPUSwitchANGLE =
diff --git a/src/libEGL/egl_loader_autogen.h b/src/libEGL/egl_loader_autogen.h
index 6383aa2f80..6aeedc1dfc 100644
--- a/src/libEGL/egl_loader_autogen.h
+++ b/src/libEGL/egl_loader_autogen.h
@@ -76,6 +76,7 @@
#define EGL_QueryDisplayAttribANGLE l_EGL_QueryDisplayAttribANGLE
#define EGL_QueryStringiANGLE l_EGL_QueryStringiANGLE
#define EGL_CopyMetalSharedEventANGLE l_EGL_CopyMetalSharedEventANGLE
+#define EGL_SetValidationEnabledANGLE l_EGL_SetValidationEnabledANGLE
#define EGL_ForceGPUSwitchANGLE l_EGL_ForceGPUSwitchANGLE
#define EGL_HandleGPUSwitchANGLE l_EGL_HandleGPUSwitchANGLE
#define EGL_ReacquireHighPowerGPUANGLE l_EGL_ReacquireHighPowerGPUANGLE
@@ -195,6 +196,7 @@ ANGLE_NO_EXPORT extern PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC l_EGL_ReleaseExtern
ANGLE_NO_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC l_EGL_QueryDisplayAttribANGLE;
ANGLE_NO_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC l_EGL_QueryStringiANGLE;
ANGLE_NO_EXPORT extern PFNEGLCOPYMETALSHAREDEVENTANGLEPROC l_EGL_CopyMetalSharedEventANGLE;
+ANGLE_NO_EXPORT extern PFNEGLSETVALIDATIONENABLEDANGLEPROC l_EGL_SetValidationEnabledANGLE;
ANGLE_NO_EXPORT extern PFNEGLFORCEGPUSWITCHANGLEPROC l_EGL_ForceGPUSwitchANGLE;
ANGLE_NO_EXPORT extern PFNEGLHANDLEGPUSWITCHANGLEPROC l_EGL_HandleGPUSwitchANGLE;
ANGLE_NO_EXPORT extern PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC l_EGL_ReacquireHighPowerGPUANGLE;
diff --git a/src/libEGL/libEGL_autogen.cpp b/src/libEGL/libEGL_autogen.cpp
index e86ea9fd78..853e369687 100644
--- a/src/libEGL/libEGL_autogen.cpp
+++ b/src/libEGL/libEGL_autogen.cpp
@@ -515,6 +515,13 @@ void *EGLAPIENTRY eglCopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSyncKHR sync)
return EGL_CopyMetalSharedEventANGLE(dpy, sync);
}
+// EGL_ANGLE_no_error
+void EGLAPIENTRY eglSetValidationEnabledANGLE(EGLBoolean validationState)
+{
+ EnsureEGLLoaded();
+ return EGL_SetValidationEnabledANGLE(validationState);
+}
+
// EGL_ANGLE_power_preference
void EGLAPIENTRY eglReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
{
diff --git a/src/libEGL/libEGL_autogen.def b/src/libEGL/libEGL_autogen.def
index 889c633537..95eddd7312 100644
--- a/src/libEGL/libEGL_autogen.def
+++ b/src/libEGL/libEGL_autogen.def
@@ -98,6 +98,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
eglCopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ eglSetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
eglForceGPUSwitchANGLE
eglHandleGPUSwitchANGLE
diff --git a/src/libEGL/libEGL_vulkan_secondaries_autogen.def b/src/libEGL/libEGL_vulkan_secondaries_autogen.def
index 6034171259..461b904291 100644
--- a/src/libEGL/libEGL_vulkan_secondaries_autogen.def
+++ b/src/libEGL/libEGL_vulkan_secondaries_autogen.def
@@ -98,6 +98,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
eglCopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ eglSetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
eglForceGPUSwitchANGLE
eglHandleGPUSwitchANGLE
diff --git a/src/libGLESv2/egl_context_lock_autogen.h b/src/libGLESv2/egl_context_lock_autogen.h
index 10139257c5..d130dc176c 100644
--- a/src/libGLESv2/egl_context_lock_autogen.h
+++ b/src/libGLESv2/egl_context_lock_autogen.h
@@ -142,6 +142,9 @@ ScopedContextMutexLock GetContextLock_QueryDisplayAttribANGLE(Thread *thread,
ScopedContextMutexLock GetContextLock_CopyMetalSharedEventANGLE(Thread *thread,
egl::Display *dpyPacked);
+// EGL_ANGLE_no_error
+ScopedContextMutexLock GetContextLock_SetValidationEnabledANGLE(Thread *thread);
+
// EGL_ANGLE_power_preference
ScopedContextMutexLock GetContextLock_ReleaseHighPowerGPUANGLE(Thread *thread,
egl::Display *dpyPacked,
diff --git a/src/libGLESv2/egl_context_lock_impl.h b/src/libGLESv2/egl_context_lock_impl.h
index bf4bf0523b..0cb26597fd 100644
--- a/src/libGLESv2/egl_context_lock_impl.h
+++ b/src/libGLESv2/egl_context_lock_impl.h
@@ -740,6 +740,12 @@ GetContextLock_StreamConsumerGLTextureExternalAttribsNV(Thread *thread, egl::Dis
return TryLockCurrentContext(thread);
}
+// EGL_ANGLE_no_error
+ANGLE_INLINE ScopedContextMutexLock GetContextLock_SetValidationEnabledANGLE(Thread *thread)
+{
+ return {};
+}
+
} // namespace egl
#endif // LIBGLESV2_EGL_CONTEXT_LOCK_IMPL_H_
diff --git a/src/libGLESv2/egl_ext_stubs.cpp b/src/libGLESv2/egl_ext_stubs.cpp
index d2987a41e3..59a537af5f 100644
--- a/src/libGLESv2/egl_ext_stubs.cpp
+++ b/src/libGLESv2/egl_ext_stubs.cpp
@@ -1053,4 +1053,11 @@ void ReleaseExternalContextANGLE(Thread *thread, egl::Display *display)
thread->setSuccess();
}
+
+void SetValidationEnabledANGLE(Thread *thread, EGLBoolean validationState)
+{
+ SetEGLValidationEnabled(validationState != EGL_FALSE);
+ thread->setSuccess();
+}
+
} // namespace egl
diff --git a/src/libGLESv2/egl_ext_stubs_autogen.h b/src/libGLESv2/egl_ext_stubs_autogen.h
index 43dcb45c6c..bddd89c390 100644
--- a/src/libGLESv2/egl_ext_stubs_autogen.h
+++ b/src/libGLESv2/egl_ext_stubs_autogen.h
@@ -275,5 +275,6 @@ EGLBoolean ExportVkImageANGLE(Thread *thread,
void *vk_image_create_info);
void *CopyMetalSharedEventANGLE(Thread *thread, egl::Display *dpyPacked, egl::SyncID syncPacked);
void WaitUntilWorkScheduledANGLE(Thread *thread, egl::Display *dpyPacked);
+void SetValidationEnabledANGLE(Thread *thread, EGLBoolean validationState);
} // namespace egl
#endif // LIBGLESV2_EGL_EXT_STUBS_AUTOGEN_H_
diff --git a/src/libGLESv2/entry_points_egl_autogen.cpp b/src/libGLESv2/entry_points_egl_autogen.cpp
index 4325d1dc5d..0ed94be3f1 100644
--- a/src/libGLESv2/entry_points_egl_autogen.cpp
+++ b/src/libGLESv2/entry_points_egl_autogen.cpp
@@ -46,8 +46,15 @@ EGLBoolean EGLAPIENTRY EGL_ChooseConfig(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ChooseConfig, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ChooseConfig, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, attrib_listPacked, configs, config_size, num_config);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ChooseConfig, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, attrib_listPacked, configs, config_size, num_config);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = ChooseConfig(thread, dpyPacked, attrib_listPacked, configs, config_size,
num_config);
@@ -79,8 +86,14 @@ EGLBoolean EGLAPIENTRY EGL_CopyBuffers(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CopyBuffers, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CopyBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, target);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CopyBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, target);
+ }
+ else
+ {
+ }
returnValue = CopyBuffers(thread, dpyPacked, surfacePacked, target);
}
@@ -114,8 +127,15 @@ EGLContext EGLAPIENTRY EGL_CreateContext(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateContext, thread, dpyPacked, share_contextPacked);
- ANGLE_EGL_VALIDATE(thread, CreateContext, GetDisplayIfValid(dpyPacked), EGLContext,
- dpyPacked, configPacked, share_contextPacked, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateContext, GetDisplayIfValid(dpyPacked), EGLContext,
+ dpyPacked, configPacked, share_contextPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateContext(thread, dpyPacked, configPacked, share_contextPacked,
attrib_listPacked);
@@ -148,8 +168,15 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferSurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePbufferSurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePbufferSurface, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePbufferSurface, GetDisplayIfValid(dpyPacked),
+ EGLSurface, dpyPacked, configPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePbufferSurface(thread, dpyPacked, configPacked, attrib_listPacked);
}
@@ -182,8 +209,15 @@ EGLSurface EGLAPIENTRY EGL_CreatePixmapSurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePixmapSurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePixmapSurface, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, pixmap, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePixmapSurface, GetDisplayIfValid(dpyPacked),
+ EGLSurface, dpyPacked, configPacked, pixmap, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue =
CreatePixmapSurface(thread, dpyPacked, configPacked, pixmap, attrib_listPacked);
@@ -217,8 +251,15 @@ EGLSurface EGLAPIENTRY EGL_CreateWindowSurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateWindowSurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreateWindowSurface, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, win, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateWindowSurface, GetDisplayIfValid(dpyPacked),
+ EGLSurface, dpyPacked, configPacked, win, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue =
CreateWindowSurface(thread, dpyPacked, configPacked, win, attrib_listPacked);
@@ -246,8 +287,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroyContext(EGLDisplay dpy, EGLContext ctx)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroyContext, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE(thread, DestroyContext, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, ctxPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroyContext, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, ctxPacked);
+ }
+ else
+ {
+ }
returnValue = DestroyContext(thread, dpyPacked, ctxPacked);
}
@@ -273,8 +320,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroySurface(EGLDisplay dpy, EGLSurface surface)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroySurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroySurface, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroySurface, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked);
+ }
+ else
+ {
+ }
returnValue = DestroySurface(thread, dpyPacked, surfacePacked);
}
@@ -305,8 +358,14 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigAttrib(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetConfigAttrib, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, GetConfigAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, configPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetConfigAttrib, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, configPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = GetConfigAttrib(thread, dpyPacked, configPacked, attribute, value);
}
@@ -337,8 +396,14 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigs(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetConfigs, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetConfigs, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, configs, config_size, num_config);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetConfigs, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, configs, config_size, num_config);
+ }
+ else
+ {
+ }
returnValue = GetConfigs(thread, dpyPacked, configs, config_size, num_config);
}
@@ -358,7 +423,13 @@ EGLDisplay EGLAPIENTRY EGL_GetCurrentDisplay()
EGL_EVENT(GetCurrentDisplay, "");
- ANGLE_EGL_VALIDATE(thread, GetCurrentDisplay, nullptr, EGLDisplay);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetCurrentDisplay, nullptr, EGLDisplay);
+ }
+ else
+ {
+ }
returnValue = GetCurrentDisplay(thread);
@@ -376,7 +447,13 @@ EGLSurface EGLAPIENTRY EGL_GetCurrentSurface(EGLint readdraw)
EGL_EVENT(GetCurrentSurface, "readdraw = %d", readdraw);
- ANGLE_EGL_VALIDATE(thread, GetCurrentSurface, nullptr, EGLSurface, readdraw);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetCurrentSurface, nullptr, EGLSurface, readdraw);
+ }
+ else
+ {
+ }
returnValue = GetCurrentSurface(thread, readdraw);
@@ -397,7 +474,13 @@ EGLDisplay EGLAPIENTRY EGL_GetDisplay(EGLNativeDisplayType display_id)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetDisplay, thread);
- ANGLE_EGL_VALIDATE(thread, GetDisplay, nullptr, EGLDisplay, display_id);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetDisplay, nullptr, EGLDisplay, display_id);
+ }
+ else
+ {
+ }
returnValue = GetDisplay(thread, display_id);
}
@@ -416,7 +499,13 @@ EGLint EGLAPIENTRY EGL_GetError()
EGL_EVENT(GetError, "");
- ANGLE_EGL_VALIDATE(thread, GetError, nullptr, EGLint);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetError, nullptr, EGLint);
+ }
+ else
+ {
+ }
returnValue = GetError(thread);
@@ -437,8 +526,14 @@ __eglMustCastToProperFunctionPointerType EGLAPIENTRY EGL_GetProcAddress(const ch
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetProcAddress, thread);
- ANGLE_EGL_VALIDATE(thread, GetProcAddress, nullptr,
- __eglMustCastToProperFunctionPointerType, procname);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetProcAddress, nullptr,
+ __eglMustCastToProperFunctionPointerType, procname);
+ }
+ else
+ {
+ }
returnValue = GetProcAddress(thread, procname);
}
@@ -464,8 +559,14 @@ EGLBoolean EGLAPIENTRY EGL_Initialize(EGLDisplay dpy, EGLint *major, EGLint *min
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(Initialize, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, Initialize, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, major, minor);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, Initialize, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, major, minor);
+ }
+ else
+ {
+ }
returnValue = Initialize(thread, dpyPacked, major, minor);
}
@@ -498,8 +599,14 @@ EGLBoolean EGLAPIENTRY EGL_MakeCurrent(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(MakeCurrent, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE(thread, MakeCurrent, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, drawPacked, readPacked, ctxPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, MakeCurrent, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, drawPacked, readPacked, ctxPacked);
+ }
+ else
+ {
+ }
returnValue = MakeCurrent(thread, dpyPacked, drawPacked, readPacked, ctxPacked);
}
@@ -531,8 +638,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryContext(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryContext, thread, dpyPacked, ctxPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryContext, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, ctxPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryContext, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, ctxPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryContext(thread, dpyPacked, ctxPacked, attribute, value);
}
@@ -557,8 +670,14 @@ const char *EGLAPIENTRY EGL_QueryString(EGLDisplay dpy, EGLint name)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryString, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, QueryString, GetDisplayIfValid(dpyPacked), const char *,
- dpyPacked, name);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryString, GetDisplayIfValid(dpyPacked), const char *,
+ dpyPacked, name);
+ }
+ else
+ {
+ }
returnValue = QueryString(thread, dpyPacked, name);
}
@@ -592,8 +711,14 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QuerySurface, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QuerySurface, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QuerySurface, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QuerySurface(thread, dpyPacked, surfacePacked, attribute, value);
}
@@ -620,8 +745,14 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffers(EGLDisplay dpy, EGLSurface surface)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SwapBuffers, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SwapBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SwapBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked);
+ }
+ else
+ {
+ }
returnValue = SwapBuffers(thread, dpyPacked, surfacePacked);
}
@@ -645,8 +776,14 @@ EGLBoolean EGLAPIENTRY EGL_Terminate(EGLDisplay dpy)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(Terminate, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, Terminate, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, Terminate, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked);
+ }
+ else
+ {
+ }
returnValue = Terminate(thread, dpyPacked);
}
@@ -668,7 +805,13 @@ EGLBoolean EGLAPIENTRY EGL_WaitGL()
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitGL, thread);
- ANGLE_EGL_VALIDATE(thread, WaitGL, nullptr, EGLBoolean);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, WaitGL, nullptr, EGLBoolean);
+ }
+ else
+ {
+ }
returnValue = WaitGL(thread);
}
@@ -690,7 +833,13 @@ EGLBoolean EGLAPIENTRY EGL_WaitNative(EGLint engine)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitNative, thread);
- ANGLE_EGL_VALIDATE(thread, WaitNative, nullptr, EGLBoolean, engine);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, WaitNative, nullptr, EGLBoolean, engine);
+ }
+ else
+ {
+ }
returnValue = WaitNative(thread, engine);
}
@@ -717,8 +866,14 @@ EGLBoolean EGLAPIENTRY EGL_BindTexImage(EGLDisplay dpy, EGLSurface surface, EGLi
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(BindTexImage, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, BindTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, buffer);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, BindTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, buffer);
+ }
+ else
+ {
+ }
returnValue = BindTexImage(thread, dpyPacked, surfacePacked, buffer);
}
@@ -746,8 +901,14 @@ EGLBoolean EGLAPIENTRY EGL_ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, E
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReleaseTexImage, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ReleaseTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, buffer);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ReleaseTexImage, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, buffer);
+ }
+ else
+ {
+ }
returnValue = ReleaseTexImage(thread, dpyPacked, surfacePacked, buffer);
}
@@ -779,8 +940,14 @@ EGLBoolean EGLAPIENTRY EGL_SurfaceAttrib(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SurfaceAttrib, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, SurfaceAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SurfaceAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = SurfaceAttrib(thread, dpyPacked, surfacePacked, attribute, value);
}
@@ -805,8 +972,14 @@ EGLBoolean EGLAPIENTRY EGL_SwapInterval(EGLDisplay dpy, EGLint interval)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SwapInterval, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SwapInterval, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, interval);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SwapInterval, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, interval);
+ }
+ else
+ {
+ }
returnValue = SwapInterval(thread, dpyPacked, interval);
}
@@ -829,7 +1002,13 @@ EGLBoolean EGLAPIENTRY EGL_BindAPI(EGLenum api)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(BindAPI, thread);
- ANGLE_EGL_VALIDATE(thread, BindAPI, nullptr, EGLBoolean, api);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, BindAPI, nullptr, EGLBoolean, api);
+ }
+ else
+ {
+ }
returnValue = BindAPI(thread, api);
}
@@ -863,9 +1042,16 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferFromClientBuffer(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePbufferFromClientBuffer, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePbufferFromClientBuffer, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, buftype, buffer, configPacked,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePbufferFromClientBuffer,
+ GetDisplayIfValid(dpyPacked), EGLSurface, dpyPacked, buftype,
+ buffer, configPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePbufferFromClientBuffer(thread, dpyPacked, buftype, buffer,
configPacked, attrib_listPacked);
@@ -889,7 +1075,13 @@ EGLenum EGLAPIENTRY EGL_QueryAPI()
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryAPI, thread);
- ANGLE_EGL_VALIDATE(thread, QueryAPI, nullptr, EGLenum);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryAPI, nullptr, EGLenum);
+ }
+ else
+ {
+ }
returnValue = QueryAPI(thread);
}
@@ -911,7 +1103,13 @@ EGLBoolean EGLAPIENTRY EGL_ReleaseThread()
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReleaseThread, thread);
- ANGLE_EGL_VALIDATE(thread, ReleaseThread, nullptr, EGLBoolean);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ReleaseThread, nullptr, EGLBoolean);
+ }
+ else
+ {
+ }
returnValue = ReleaseThread(thread);
}
@@ -933,7 +1131,13 @@ EGLBoolean EGLAPIENTRY EGL_WaitClient()
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitClient, thread);
- ANGLE_EGL_VALIDATE(thread, WaitClient, nullptr, EGLBoolean);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, WaitClient, nullptr, EGLBoolean);
+ }
+ else
+ {
+ }
returnValue = WaitClient(thread);
}
@@ -953,7 +1157,13 @@ EGLContext EGLAPIENTRY EGL_GetCurrentContext()
EGL_EVENT(GetCurrentContext, "");
- ANGLE_EGL_VALIDATE(thread, GetCurrentContext, nullptr, EGLContext);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetCurrentContext, nullptr, EGLContext);
+ }
+ else
+ {
+ }
returnValue = GetCurrentContext(thread);
@@ -980,8 +1190,14 @@ EGLint EGLAPIENTRY EGL_ClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ClientWaitSync, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ClientWaitSync, GetDisplayIfValid(dpyPacked), EGLint,
- dpyPacked, syncPacked, flags, timeout);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ClientWaitSync, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, syncPacked, flags, timeout);
+ }
+ else
+ {
+ }
returnValue = ClientWaitSync(thread, dpyPacked, syncPacked, flags, timeout);
}
@@ -1016,8 +1232,15 @@ EGLImage EGLAPIENTRY EGL_CreateImage(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateImage, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE(thread, CreateImage, GetDisplayIfValid(dpyPacked), EGLImage,
- dpyPacked, ctxPacked, target, buffer, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateImage, GetDisplayIfValid(dpyPacked), EGLImage,
+ dpyPacked, ctxPacked, target, buffer, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue =
CreateImage(thread, dpyPacked, ctxPacked, target, buffer, attrib_listPacked);
@@ -1052,9 +1275,16 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePlatformPixmapSurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePlatformPixmapSurface, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, native_pixmap,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePlatformPixmapSurface,
+ GetDisplayIfValid(dpyPacked), EGLSurface, dpyPacked,
+ configPacked, native_pixmap, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePlatformPixmapSurface(thread, dpyPacked, configPacked,
native_pixmap, attrib_listPacked);
@@ -1089,9 +1319,16 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurface(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePlatformWindowSurface, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePlatformWindowSurface, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, native_window,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePlatformWindowSurface,
+ GetDisplayIfValid(dpyPacked), EGLSurface, dpyPacked,
+ configPacked, native_window, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePlatformWindowSurface(thread, dpyPacked, configPacked,
native_window, attrib_listPacked);
@@ -1120,8 +1357,15 @@ EGLSync EGLAPIENTRY EGL_CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateSync, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreateSync, GetDisplayIfValid(dpyPacked), EGLSync, dpyPacked,
- type, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateSync, GetDisplayIfValid(dpyPacked), EGLSync,
+ dpyPacked, type, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateSync(thread, dpyPacked, type, attrib_listPacked);
}
@@ -1148,8 +1392,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImage(EGLDisplay dpy, EGLImage image)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroyImage, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroyImage, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, imagePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroyImage, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, imagePacked);
+ }
+ else
+ {
+ }
returnValue = DestroyImage(thread, dpyPacked, imagePacked);
}
@@ -1175,8 +1425,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroySync(EGLDisplay dpy, EGLSync sync)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroySync, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroySync, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroySync, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked);
+ }
+ else
+ {
+ }
returnValue = DestroySync(thread, dpyPacked, syncPacked);
}
@@ -1205,8 +1461,15 @@ EGLDisplay EGLAPIENTRY EGL_GetPlatformDisplay(EGLenum platform,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetPlatformDisplay, thread);
- ANGLE_EGL_VALIDATE(thread, GetPlatformDisplay, nullptr, EGLDisplay, platform,
- native_display, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetPlatformDisplay, nullptr, EGLDisplay, platform,
+ native_display, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = GetPlatformDisplay(thread, platform, native_display, attrib_listPacked);
}
@@ -1238,8 +1501,14 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttrib(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetSyncAttrib, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, GetSyncAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetSyncAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = GetSyncAttrib(thread, dpyPacked, syncPacked, attribute, value);
}
@@ -1266,8 +1535,14 @@ EGLBoolean EGLAPIENTRY EGL_WaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitSync, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, WaitSync, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked, flags);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, WaitSync, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked, flags);
+ }
+ else
+ {
+ }
returnValue = WaitSync(thread, dpyPacked, syncPacked, flags);
}
diff --git a/src/libGLESv2/entry_points_egl_ext_autogen.cpp b/src/libGLESv2/entry_points_egl_ext_autogen.cpp
index 405f138781..2e81dddff6 100644
--- a/src/libGLESv2/entry_points_egl_ext_autogen.cpp
+++ b/src/libGLESv2/entry_points_egl_ext_autogen.cpp
@@ -38,8 +38,14 @@ void EGLAPIENTRY EGL_SetBlobCacheFuncsANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SetBlobCacheFuncsANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, SetBlobCacheFuncsANDROID, GetDisplayIfValid(dpyPacked),
- dpyPacked, set, get);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, SetBlobCacheFuncsANDROID,
+ GetDisplayIfValid(dpyPacked), dpyPacked, set, get);
+ }
+ else
+ {
+ }
SetBlobCacheFuncsANDROID(thread, dpyPacked, set, get);
}
@@ -64,8 +70,15 @@ EGLClientBuffer EGLAPIENTRY EGL_CreateNativeClientBufferANDROID(const EGLint *at
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateNativeClientBufferANDROID, thread);
- ANGLE_EGL_VALIDATE(thread, CreateNativeClientBufferANDROID, nullptr, EGLClientBuffer,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateNativeClientBufferANDROID, nullptr,
+ EGLClientBuffer, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateNativeClientBufferANDROID(thread, attrib_listPacked);
}
@@ -97,9 +110,15 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingSupportedANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetCompositorTimingSupportedANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetCompositorTimingSupportedANDROID,
- GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, surfacePacked,
- namePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetCompositorTimingSupportedANDROID,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, namePacked);
+ }
+ else
+ {
+ }
returnValue =
GetCompositorTimingSupportedANDROID(thread, dpyPacked, surfacePacked, namePacked);
@@ -134,8 +153,15 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetCompositorTimingANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetCompositorTimingANDROID, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, numTimestamps, names, values);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetCompositorTimingANDROID, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, numTimestamps, names,
+ values);
+ }
+ else
+ {
+ }
returnValue = GetCompositorTimingANDROID(thread, dpyPacked, surfacePacked,
numTimestamps, names, values);
@@ -167,8 +193,14 @@ EGLBoolean EGLAPIENTRY EGL_GetNextFrameIdANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetNextFrameIdANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetNextFrameIdANDROID, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, frameId);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetNextFrameIdANDROID, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, frameId);
+ }
+ else
+ {
+ }
returnValue = GetNextFrameIdANDROID(thread, dpyPacked, surfacePacked, frameId);
}
@@ -199,9 +231,15 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampSupportedANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetFrameTimestampSupportedANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetFrameTimestampSupportedANDROID,
- GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, surfacePacked,
- timestampPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetFrameTimestampSupportedANDROID,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, timestampPacked);
+ }
+ else
+ {
+ }
returnValue = GetFrameTimestampSupportedANDROID(thread, dpyPacked, surfacePacked,
timestampPacked);
@@ -238,9 +276,15 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampsANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetFrameTimestampsANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetFrameTimestampsANDROID, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, frameId, numTimestamps,
- timestamps, values);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetFrameTimestampsANDROID, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, frameId, numTimestamps,
+ timestamps, values);
+ }
+ else
+ {
+ }
returnValue = GetFrameTimestampsANDROID(thread, dpyPacked, surfacePacked, frameId,
numTimestamps, timestamps, values);
@@ -265,8 +309,14 @@ EGLClientBuffer EGLAPIENTRY EGL_GetNativeClientBufferANDROID(const struct AHardw
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetNativeClientBufferANDROID, thread);
- ANGLE_EGL_VALIDATE(thread, GetNativeClientBufferANDROID, nullptr, EGLClientBuffer,
- buffer);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetNativeClientBufferANDROID, nullptr, EGLClientBuffer,
+ buffer);
+ }
+ else
+ {
+ }
returnValue = GetNativeClientBufferANDROID(thread, buffer);
}
@@ -293,8 +343,14 @@ EGLint EGLAPIENTRY EGL_DupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DupNativeFenceFDANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DupNativeFenceFDANDROID, GetDisplayIfValid(dpyPacked),
- EGLint, dpyPacked, syncPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DupNativeFenceFDANDROID, GetDisplayIfValid(dpyPacked),
+ EGLint, dpyPacked, syncPacked);
+ }
+ else
+ {
+ }
returnValue = DupNativeFenceFDANDROID(thread, dpyPacked, syncPacked);
}
@@ -325,8 +381,14 @@ EGLBoolean EGLAPIENTRY EGL_PresentationTimeANDROID(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(PresentationTimeANDROID, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, PresentationTimeANDROID, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, time);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, PresentationTimeANDROID, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, time);
+ }
+ else
+ {
+ }
returnValue = PresentationTimeANDROID(thread, dpyPacked, surfacePacked, time);
}
@@ -355,8 +417,14 @@ EGLDeviceEXT EGLAPIENTRY EGL_CreateDeviceANGLE(EGLint device_type,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateDeviceANGLE, thread);
- ANGLE_EGL_VALIDATE(thread, CreateDeviceANGLE, nullptr, EGLDeviceEXT, device_type,
- native_device, attrib_list);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateDeviceANGLE, nullptr, EGLDeviceEXT, device_type,
+ native_device, attrib_list);
+ }
+ else
+ {
+ }
returnValue = CreateDeviceANGLE(thread, device_type, native_device, attrib_list);
}
@@ -381,7 +449,13 @@ EGLBoolean EGLAPIENTRY EGL_ReleaseDeviceANGLE(EGLDeviceEXT device)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReleaseDeviceANGLE, thread);
- ANGLE_EGL_VALIDATE(thread, ReleaseDeviceANGLE, nullptr, EGLBoolean, devicePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ReleaseDeviceANGLE, nullptr, EGLBoolean, devicePacked);
+ }
+ else
+ {
+ }
returnValue = ReleaseDeviceANGLE(thread, devicePacked);
}
@@ -408,8 +482,14 @@ void EGLAPIENTRY EGL_AcquireExternalContextANGLE(EGLDisplay dpy, EGLSurface draw
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(AcquireExternalContextANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, AcquireExternalContextANGLE,
- GetDisplayIfValid(dpyPacked), dpyPacked, drawAndReadPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, AcquireExternalContextANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked, drawAndReadPacked);
+ }
+ else
+ {
+ }
AcquireExternalContextANGLE(thread, dpyPacked, drawAndReadPacked);
}
@@ -431,8 +511,14 @@ void EGLAPIENTRY EGL_ReleaseExternalContextANGLE(EGLDisplay dpy)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReleaseExternalContextANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ReleaseExternalContextANGLE,
- GetDisplayIfValid(dpyPacked), dpyPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ReleaseExternalContextANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked);
+ }
+ else
+ {
+ }
ReleaseExternalContextANGLE(thread, dpyPacked);
}
@@ -457,8 +543,14 @@ const char *EGLAPIENTRY EGL_QueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLin
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryStringiANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, QueryStringiANGLE, GetDisplayIfValid(dpyPacked),
- const char *, dpyPacked, name, index);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryStringiANGLE, GetDisplayIfValid(dpyPacked),
+ const char *, dpyPacked, name, index);
+ }
+ else
+ {
+ }
returnValue = QueryStringiANGLE(thread, dpyPacked, name, index);
}
@@ -486,8 +578,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDisplayAttribANGLE, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribANGLE, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryDisplayAttribANGLE(thread, dpyPacked, attribute, value);
}
@@ -515,8 +613,14 @@ void *EGLAPIENTRY EGL_CopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSyncKHR sync)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CopyMetalSharedEventANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CopyMetalSharedEventANGLE, GetDisplayIfValid(dpyPacked),
- void *, dpyPacked, syncPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CopyMetalSharedEventANGLE, GetDisplayIfValid(dpyPacked),
+ void *, dpyPacked, syncPacked);
+ }
+ else
+ {
+ }
returnValue = CopyMetalSharedEventANGLE(thread, dpyPacked, syncPacked);
}
@@ -528,6 +632,34 @@ void *EGLAPIENTRY EGL_CopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSyncKHR sync)
return returnValue;
}
+// EGL_ANGLE_no_error
+void EGLAPIENTRY EGL_SetValidationEnabledANGLE(EGLBoolean validationState)
+{
+
+ Thread *thread = egl::GetCurrentThread();
+ {
+ ANGLE_SCOPED_GLOBAL_LOCK();
+ EGL_EVENT(SetValidationEnabledANGLE, "validationState = %u", validationState);
+
+ {
+ ANGLE_EGL_SCOPED_CONTEXT_LOCK(SetValidationEnabledANGLE, thread);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, SetValidationEnabledANGLE, nullptr,
+ validationState);
+ }
+ else
+ {
+ }
+
+ SetValidationEnabledANGLE(thread, validationState);
+ }
+
+ ANGLE_CAPTURE_EGL(SetValidationEnabledANGLE, true, thread, validationState);
+ }
+ ASSERT(!egl::Display::GetCurrentThreadUnlockedTailCall()->any());
+}
+
// EGL_ANGLE_power_preference
void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
{
@@ -543,8 +675,14 @@ void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReleaseHighPowerGPUANGLE, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ReleaseHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked),
- dpyPacked, ctxPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ReleaseHighPowerGPUANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked, ctxPacked);
+ }
+ else
+ {
+ }
ReleaseHighPowerGPUANGLE(thread, dpyPacked, ctxPacked);
}
@@ -568,8 +706,14 @@ void EGLAPIENTRY EGL_ReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ReacquireHighPowerGPUANGLE, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ReacquireHighPowerGPUANGLE,
- GetDisplayIfValid(dpyPacked), dpyPacked, ctxPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ReacquireHighPowerGPUANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked, ctxPacked);
+ }
+ else
+ {
+ }
ReacquireHighPowerGPUANGLE(thread, dpyPacked, ctxPacked);
}
@@ -591,8 +735,14 @@ void EGLAPIENTRY EGL_HandleGPUSwitchANGLE(EGLDisplay dpy)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(HandleGPUSwitchANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, HandleGPUSwitchANGLE, GetDisplayIfValid(dpyPacked),
- dpyPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, HandleGPUSwitchANGLE, GetDisplayIfValid(dpyPacked),
+ dpyPacked);
+ }
+ else
+ {
+ }
HandleGPUSwitchANGLE(thread, dpyPacked);
}
@@ -615,8 +765,14 @@ void EGLAPIENTRY EGL_ForceGPUSwitchANGLE(EGLDisplay dpy, EGLint gpuIDHigh, EGLin
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ForceGPUSwitchANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ForceGPUSwitchANGLE, GetDisplayIfValid(dpyPacked),
- dpyPacked, gpuIDHigh, gpuIDLow);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ForceGPUSwitchANGLE, GetDisplayIfValid(dpyPacked),
+ dpyPacked, gpuIDHigh, gpuIDLow);
+ }
+ else
+ {
+ }
ForceGPUSwitchANGLE(thread, dpyPacked, gpuIDHigh, gpuIDLow);
}
@@ -642,8 +798,14 @@ EGLBoolean EGLAPIENTRY EGL_PrepareSwapBuffersANGLE(EGLDisplay dpy, EGLSurface su
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(PrepareSwapBuffersANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, PrepareSwapBuffersANGLE, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, PrepareSwapBuffersANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked);
+ }
+ else
+ {
+ }
returnValue = PrepareSwapBuffersANGLE(thread, dpyPacked, surfacePacked);
}
@@ -670,8 +832,14 @@ EGLint EGLAPIENTRY EGL_ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ProgramCacheGetAttribANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ProgramCacheGetAttribANGLE, GetDisplayIfValid(dpyPacked),
- EGLint, dpyPacked, attrib);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ProgramCacheGetAttribANGLE, GetDisplayIfValid(dpyPacked),
+ EGLint, dpyPacked, attrib);
+ }
+ else
+ {
+ }
returnValue = ProgramCacheGetAttribANGLE(thread, dpyPacked, attrib);
}
@@ -704,8 +872,15 @@ void EGLAPIENTRY EGL_ProgramCacheQueryANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ProgramCacheQueryANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ProgramCacheQueryANGLE, GetDisplayIfValid(dpyPacked),
- dpyPacked, index, key, keysize, binary, binarysize);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ProgramCacheQueryANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked, index, key,
+ keysize, binary, binarysize);
+ }
+ else
+ {
+ }
ProgramCacheQueryANGLE(thread, dpyPacked, index, key, keysize, binary, binarysize);
}
@@ -735,8 +910,15 @@ void EGLAPIENTRY EGL_ProgramCachePopulateANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ProgramCachePopulateANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, ProgramCachePopulateANGLE, GetDisplayIfValid(dpyPacked),
- dpyPacked, key, keysize, binary, binarysize);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, ProgramCachePopulateANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked, key, keysize,
+ binary, binarysize);
+ }
+ else
+ {
+ }
ProgramCachePopulateANGLE(thread, dpyPacked, key, keysize, binary, binarysize);
}
@@ -761,8 +943,14 @@ EGLint EGLAPIENTRY EGL_ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGL
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ProgramCacheResizeANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ProgramCacheResizeANGLE, GetDisplayIfValid(dpyPacked),
- EGLint, dpyPacked, limit, mode);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ProgramCacheResizeANGLE, GetDisplayIfValid(dpyPacked),
+ EGLint, dpyPacked, limit, mode);
+ }
+ else
+ {
+ }
returnValue = ProgramCacheResizeANGLE(thread, dpyPacked, limit, mode);
}
@@ -795,8 +983,14 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurfacePointerANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QuerySurfacePointerANGLE, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QuerySurfacePointerANGLE, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QuerySurfacePointerANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue =
QuerySurfacePointerANGLE(thread, dpyPacked, surfacePacked, attribute, value);
@@ -830,9 +1024,16 @@ EGLBoolean EGLAPIENTRY EGL_CreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateStreamProducerD3DTextureANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreateStreamProducerD3DTextureANGLE,
- GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, streamPacked,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateStreamProducerD3DTextureANGLE,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ streamPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateStreamProducerD3DTextureANGLE(thread, dpyPacked, streamPacked,
attrib_listPacked);
@@ -866,8 +1067,15 @@ EGLBoolean EGLAPIENTRY EGL_StreamPostD3DTextureANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamPostD3DTextureANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, StreamPostD3DTextureANGLE, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, streamPacked, texture, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamPostD3DTextureANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked, texture, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = StreamPostD3DTextureANGLE(thread, dpyPacked, streamPacked, texture,
attrib_listPacked);
@@ -899,8 +1107,15 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SwapBuffersWithFrameTokenANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SwapBuffersWithFrameTokenANGLE, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, frametoken);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SwapBuffersWithFrameTokenANGLE,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, frametoken);
+ }
+ else
+ {
+ }
returnValue =
SwapBuffersWithFrameTokenANGLE(thread, dpyPacked, surfacePacked, frametoken);
@@ -934,8 +1149,14 @@ EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetMscRateANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetMscRateANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, numerator, denominator);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetMscRateANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, numerator, denominator);
+ }
+ else
+ {
+ }
returnValue = GetMscRateANGLE(thread, dpyPacked, surfacePacked, numerator, denominator);
}
@@ -969,8 +1190,15 @@ EGLBoolean EGLAPIENTRY EGL_ExportVkImageANGLE(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ExportVkImageANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ExportVkImageANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, imagePacked, vk_image, vk_image_create_info);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ExportVkImageANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, imagePacked, vk_image,
+ vk_image_create_info);
+ }
+ else
+ {
+ }
returnValue =
ExportVkImageANGLE(thread, dpyPacked, imagePacked, vk_image, vk_image_create_info);
@@ -996,8 +1224,14 @@ void EGLAPIENTRY EGL_WaitUntilWorkScheduledANGLE(EGLDisplay dpy)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitUntilWorkScheduledANGLE, thread, dpyPacked);
- ANGLE_EGL_VALIDATE_VOID(thread, WaitUntilWorkScheduledANGLE,
- GetDisplayIfValid(dpyPacked), dpyPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE_VOID(thread, WaitUntilWorkScheduledANGLE,
+ GetDisplayIfValid(dpyPacked), dpyPacked);
+ }
+ else
+ {
+ }
WaitUntilWorkScheduledANGLE(thread, dpyPacked);
}
@@ -1030,8 +1264,14 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetSyncValuesCHROMIUM, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, GetSyncValuesCHROMIUM, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, ust, msc, sbc);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetSyncValuesCHROMIUM, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, ust, msc, sbc);
+ }
+ else
+ {
+ }
returnValue = GetSyncValuesCHROMIUM(thread, dpyPacked, surfacePacked, ust, msc, sbc);
}
@@ -1061,8 +1301,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryDeviceAttribEXT(EGLDeviceEXT device,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDeviceAttribEXT, thread, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryDeviceAttribEXT, nullptr, EGLBoolean, devicePacked,
- attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDeviceAttribEXT, nullptr, EGLBoolean, devicePacked,
+ attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryDeviceAttribEXT(thread, devicePacked, attribute, value);
}
@@ -1088,8 +1334,14 @@ const char *EGLAPIENTRY EGL_QueryDeviceStringEXT(EGLDeviceEXT device, EGLint nam
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDeviceStringEXT, thread);
- ANGLE_EGL_VALIDATE(thread, QueryDeviceStringEXT, nullptr, const char *, devicePacked,
- name);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDeviceStringEXT, nullptr, const char *,
+ devicePacked, name);
+ }
+ else
+ {
+ }
returnValue = QueryDeviceStringEXT(thread, devicePacked, name);
}
@@ -1115,8 +1367,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribut
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDisplayAttribEXT, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribEXT, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribEXT, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryDisplayAttribEXT(thread, dpyPacked, attribute, value);
}
@@ -1148,8 +1406,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryDmaBufFormatsEXT(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDmaBufFormatsEXT, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, QueryDmaBufFormatsEXT, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, max_formats, formats, num_formats);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDmaBufFormatsEXT, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, max_formats, formats, num_formats);
+ }
+ else
+ {
+ }
returnValue =
QueryDmaBufFormatsEXT(thread, dpyPacked, max_formats, formats, num_formats);
@@ -1185,9 +1449,15 @@ EGLBoolean EGLAPIENTRY EGL_QueryDmaBufModifiersEXT(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDmaBufModifiersEXT, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, QueryDmaBufModifiersEXT, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, format, max_modifiers, modifiers,
- external_only, num_modifiers);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDmaBufModifiersEXT, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, format, max_modifiers, modifiers,
+ external_only, num_modifiers);
+ }
+ else
+ {
+ }
returnValue = QueryDmaBufModifiersEXT(thread, dpyPacked, format, max_modifiers,
modifiers, external_only, num_modifiers);
@@ -1223,9 +1493,16 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePlatformPixmapSurfaceEXT, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePlatformPixmapSurfaceEXT, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, native_pixmap,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePlatformPixmapSurfaceEXT,
+ GetDisplayIfValid(dpyPacked), EGLSurface, dpyPacked,
+ configPacked, native_pixmap, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePlatformPixmapSurfaceEXT(thread, dpyPacked, configPacked,
native_pixmap, attrib_listPacked);
@@ -1260,9 +1537,16 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurfaceEXT(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreatePlatformWindowSurfaceEXT, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreatePlatformWindowSurfaceEXT, GetDisplayIfValid(dpyPacked),
- EGLSurface, dpyPacked, configPacked, native_window,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreatePlatformWindowSurfaceEXT,
+ GetDisplayIfValid(dpyPacked), EGLSurface, dpyPacked,
+ configPacked, native_window, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreatePlatformWindowSurfaceEXT(thread, dpyPacked, configPacked,
native_window, attrib_listPacked);
@@ -1293,8 +1577,15 @@ EGLDisplay EGLAPIENTRY EGL_GetPlatformDisplayEXT(EGLenum platform,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetPlatformDisplayEXT, thread);
- ANGLE_EGL_VALIDATE(thread, GetPlatformDisplayEXT, nullptr, EGLDisplay, platform,
- native_display, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetPlatformDisplayEXT, nullptr, EGLDisplay, platform,
+ native_display, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue =
GetPlatformDisplayEXT(thread, platform, native_display, attrib_listPacked);
@@ -1324,8 +1615,15 @@ EGLint EGLAPIENTRY EGL_DebugMessageControlKHR(EGLDEBUGPROCKHR callback,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DebugMessageControlKHR, thread);
- ANGLE_EGL_VALIDATE(thread, DebugMessageControlKHR, nullptr, EGLint, callback,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DebugMessageControlKHR, nullptr, EGLint, callback,
+ attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = DebugMessageControlKHR(thread, callback, attrib_listPacked);
}
@@ -1357,8 +1655,14 @@ EGLint EGLAPIENTRY EGL_LabelObjectKHR(EGLDisplay display,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(LabelObjectKHR, thread, displayPacked);
- ANGLE_EGL_VALIDATE(thread, LabelObjectKHR, GetDisplayIfValid(displayPacked), EGLint,
- displayPacked, objectTypePacked, object, label);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, LabelObjectKHR, GetDisplayIfValid(displayPacked), EGLint,
+ displayPacked, objectTypePacked, object, label);
+ }
+ else
+ {
+ }
returnValue = LabelObjectKHR(thread, displayPacked, objectTypePacked, object, label);
}
@@ -1382,7 +1686,13 @@ EGLBoolean EGLAPIENTRY EGL_QueryDebugKHR(EGLint attribute, EGLAttrib *value)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryDebugKHR, thread, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryDebugKHR, nullptr, EGLBoolean, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryDebugKHR, nullptr, EGLBoolean, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryDebugKHR(thread, attribute, value);
}
@@ -1413,8 +1723,14 @@ EGLint EGLAPIENTRY EGL_ClientWaitSyncKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(ClientWaitSyncKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, ClientWaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint,
- dpyPacked, syncPacked, flags, timeout);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, ClientWaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, syncPacked, flags, timeout);
+ }
+ else
+ {
+ }
returnValue = ClientWaitSyncKHR(thread, dpyPacked, syncPacked, flags, timeout);
}
@@ -1442,8 +1758,15 @@ EGLSyncKHR EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGL
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateSyncKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreateSyncKHR, GetDisplayIfValid(dpyPacked), EGLSyncKHR,
- dpyPacked, type, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateSyncKHR, GetDisplayIfValid(dpyPacked), EGLSyncKHR,
+ dpyPacked, type, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateSyncKHR(thread, dpyPacked, type, attrib_listPacked);
}
@@ -1451,7 +1774,7 @@ EGLSyncKHR EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGL
ANGLE_CAPTURE_EGL(CreateSyncKHR, true, thread, dpyPacked, type, attrib_listPacked,
returnValue);
}
- egl::Display::GetCurrentThreadUnlockedTailCall()->run(nullptr);
+ egl::Display::GetCurrentThreadUnlockedTailCall()->run(&returnValue);
return returnValue;
}
@@ -1470,8 +1793,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroySyncKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroySyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroySyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked);
+ }
+ else
+ {
+ }
returnValue = DestroySyncKHR(thread, dpyPacked, syncPacked);
}
@@ -1502,8 +1831,14 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttribKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(GetSyncAttribKHR, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, GetSyncAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, GetSyncAttribKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, syncPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = GetSyncAttribKHR(thread, dpyPacked, syncPacked, attribute, value);
}
@@ -1539,8 +1874,16 @@ EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateImageKHR, thread, dpyPacked, ctxPacked);
- ANGLE_EGL_VALIDATE(thread, CreateImageKHR, GetDisplayIfValid(dpyPacked), EGLImageKHR,
- dpyPacked, ctxPacked, target, buffer, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateImageKHR, GetDisplayIfValid(dpyPacked),
+ EGLImageKHR, dpyPacked, ctxPacked, target, buffer,
+ attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue =
CreateImageKHR(thread, dpyPacked, ctxPacked, target, buffer, attrib_listPacked);
@@ -1568,8 +1911,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroyImageKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroyImageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, imagePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroyImageKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, imagePacked);
+ }
+ else
+ {
+ }
returnValue = DestroyImageKHR(thread, dpyPacked, imagePacked);
}
@@ -1601,8 +1950,15 @@ EGLBoolean EGLAPIENTRY EGL_LockSurfaceKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(LockSurfaceKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, LockSurfaceKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, LockSurfaceKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = LockSurfaceKHR(thread, dpyPacked, surfacePacked, attrib_listPacked);
}
@@ -1637,8 +1993,14 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurface64KHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QuerySurface64KHR, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QuerySurface64KHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QuerySurface64KHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QuerySurface64KHR(thread, dpyPacked, surfacePacked, attribute, value);
}
@@ -1665,8 +2027,14 @@ EGLBoolean EGLAPIENTRY EGL_UnlockSurfaceKHR(EGLDisplay dpy, EGLSurface surface)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(UnlockSurfaceKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, UnlockSurfaceKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, UnlockSurfaceKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked);
+ }
+ else
+ {
+ }
returnValue = UnlockSurfaceKHR(thread, dpyPacked, surfacePacked);
}
@@ -1698,8 +2066,14 @@ EGLBoolean EGLAPIENTRY EGL_SetDamageRegionKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SetDamageRegionKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SetDamageRegionKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, rects, n_rects);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SetDamageRegionKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, rects, n_rects);
+ }
+ else
+ {
+ }
returnValue = SetDamageRegionKHR(thread, dpyPacked, surfacePacked, rects, n_rects);
}
@@ -1727,8 +2101,14 @@ EGLBoolean EGLAPIENTRY EGL_SignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenu
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SignalSyncKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SignalSyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, syncPacked, mode);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SignalSyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked, mode);
+ }
+ else
+ {
+ }
returnValue = SignalSyncKHR(thread, dpyPacked, syncPacked, mode);
}
@@ -1763,8 +2143,15 @@ EGLStreamKHR EGLAPIENTRY EGL_CreateStreamKHR(EGLDisplay dpy, const EGLint *attri
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(CreateStreamKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, CreateStreamKHR, GetDisplayIfValid(dpyPacked), EGLStreamKHR,
- dpyPacked, attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, CreateStreamKHR, GetDisplayIfValid(dpyPacked),
+ EGLStreamKHR, dpyPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = CreateStreamKHR(thread, dpyPacked, attrib_listPacked);
}
@@ -1790,8 +2177,14 @@ EGLBoolean EGLAPIENTRY EGL_DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream)
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(DestroyStreamKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, DestroyStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, streamPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, DestroyStreamKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked);
+ }
+ else
+ {
+ }
returnValue = DestroyStreamKHR(thread, dpyPacked, streamPacked);
}
@@ -1822,8 +2215,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryStreamKHR, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, streamPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, streamPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryStreamKHR(thread, dpyPacked, streamPacked, attribute, value);
}
@@ -1855,8 +2254,14 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamu64KHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(QueryStreamu64KHR, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, QueryStreamu64KHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, streamPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, QueryStreamu64KHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = QueryStreamu64KHR(thread, dpyPacked, streamPacked, attribute, value);
}
@@ -1888,8 +2293,14 @@ EGLBoolean EGLAPIENTRY EGL_StreamAttribKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamAttribKHR, thread, dpyPacked, attribute);
- ANGLE_EGL_VALIDATE(thread, StreamAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, streamPacked, attribute, value);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamAttribKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked, attribute, value);
+ }
+ else
+ {
+ }
returnValue = StreamAttribKHR(thread, dpyPacked, streamPacked, attribute, value);
}
@@ -1917,8 +2328,14 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamConsumerAcquireKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, StreamConsumerAcquireKHR, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, streamPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerAcquireKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked);
+ }
+ else
+ {
+ }
returnValue = StreamConsumerAcquireKHR(thread, dpyPacked, streamPacked);
}
@@ -1946,8 +2363,15 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EG
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamConsumerGLTextureExternalKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalKHR,
- GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, streamPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalKHR,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ streamPacked);
+ }
+ else
+ {
+ }
returnValue = StreamConsumerGLTextureExternalKHR(thread, dpyPacked, streamPacked);
}
@@ -1974,8 +2398,14 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamConsumerReleaseKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, StreamConsumerReleaseKHR, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, streamPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerReleaseKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked);
+ }
+ else
+ {
+ }
returnValue = StreamConsumerReleaseKHR(thread, dpyPacked, streamPacked);
}
@@ -2008,8 +2438,14 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(SwapBuffersWithDamageKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, SwapBuffersWithDamageKHR, GetDisplayIfValid(dpyPacked),
- EGLBoolean, dpyPacked, surfacePacked, rects, n_rects);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, SwapBuffersWithDamageKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, rects, n_rects);
+ }
+ else
+ {
+ }
returnValue =
SwapBuffersWithDamageKHR(thread, dpyPacked, surfacePacked, rects, n_rects);
@@ -2038,8 +2474,14 @@ EGLint EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(WaitSyncKHR, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, WaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,
- syncPacked, flags);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, WaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, syncPacked, flags);
+ }
+ else
+ {
+ }
returnValue = WaitSyncKHR(thread, dpyPacked, syncPacked, flags);
}
@@ -2073,8 +2515,14 @@ EGLBoolean EGLAPIENTRY EGL_PostSubBufferNV(EGLDisplay dpy,
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(PostSubBufferNV, thread, dpyPacked);
- ANGLE_EGL_VALIDATE(thread, PostSubBufferNV, GetDisplayIfValid(dpyPacked), EGLBoolean,
- dpyPacked, surfacePacked, x, y, width, height);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, PostSubBufferNV, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, x, y, width, height);
+ }
+ else
+ {
+ }
returnValue = PostSubBufferNV(thread, dpyPacked, surfacePacked, x, y, width, height);
}
@@ -2108,9 +2556,16 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalAttribsNV(EGLDisplay d
{
ANGLE_EGL_SCOPED_CONTEXT_LOCK(StreamConsumerGLTextureExternalAttribsNV, thread,
dpyPacked);
- ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalAttribsNV,
- GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, streamPacked,
- attrib_listPacked);
+ if (IsEGLValidationEnabled())
+ {
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalAttribsNV,
+ GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ streamPacked, attrib_listPacked);
+ }
+ else
+ {
+ attrib_listPacked.initializeWithoutValidation();
+ }
returnValue = StreamConsumerGLTextureExternalAttribsNV(thread, dpyPacked, streamPacked,
attrib_listPacked);
diff --git a/src/libGLESv2/entry_points_egl_ext_autogen.h b/src/libGLESv2/entry_points_egl_ext_autogen.h
index d9a6770eac..8b14d3f014 100644
--- a/src/libGLESv2/entry_points_egl_ext_autogen.h
+++ b/src/libGLESv2/entry_points_egl_ext_autogen.h
@@ -82,6 +82,9 @@ ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy,
// EGL_ANGLE_metal_shared_event_sync
ANGLE_EXPORT void *EGLAPIENTRY EGL_CopyMetalSharedEventANGLE(EGLDisplay dpy, EGLSyncKHR sync);
+// EGL_ANGLE_no_error
+ANGLE_EXPORT void EGLAPIENTRY EGL_SetValidationEnabledANGLE(EGLBoolean validationState);
+
// EGL_ANGLE_power_preference
ANGLE_EXPORT void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx);
ANGLE_EXPORT void EGLAPIENTRY EGL_ReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx);
diff --git a/src/libGLESv2/global_state.cpp b/src/libGLESv2/global_state.cpp
index 8fdc748bf4..a66de6c4dd 100644
--- a/src/libGLESv2/global_state.cpp
+++ b/src/libGLESv2/global_state.cpp
@@ -28,6 +28,8 @@ ANGLE_REQUIRE_CONSTANT_INIT gl::Context *g_LastContext(nullptr);
static_assert(std::is_trivially_destructible<decltype(g_LastContext)>::value,
"global last context is not trivially destructible");
+bool g_EGLValidationEnabled = true;
+
// Called only on Android platform
[[maybe_unused]] void ThreadCleanupCallback(void *ptr)
{
@@ -175,6 +177,16 @@ ScopedSyncCurrentContextFromThread::~ScopedSyncCurrentContextFromThread()
SetContextCurrent(mThread, mThread->getContext());
}
+void SetEGLValidationEnabled(bool enabled)
+{
+ g_EGLValidationEnabled = enabled;
+}
+
+bool IsEGLValidationEnabled()
+{
+ return g_EGLValidationEnabled;
+}
+
} // namespace egl
namespace gl
diff --git a/src/libGLESv2/global_state.h b/src/libGLESv2/global_state.h
index bed684fba5..a74931364f 100644
--- a/src/libGLESv2/global_state.h
+++ b/src/libGLESv2/global_state.h
@@ -40,6 +40,9 @@ void SetGlobalLastContext(gl::Context *context);
Thread *GetCurrentThread();
Debug *GetDebug();
+void SetEGLValidationEnabled(bool enabled);
+bool IsEGLValidationEnabled();
+
// Sync the current context from Thread to global state.
class [[nodiscard]] ScopedSyncCurrentContextFromThread
{
diff --git a/src/libGLESv2/libGLESv2_autogen.def b/src/libGLESv2/libGLESv2_autogen.def
index 30b46aab0d..eba29f641e 100644
--- a/src/libGLESv2/libGLESv2_autogen.def
+++ b/src/libGLESv2/libGLESv2_autogen.def
@@ -1334,6 +1334,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
EGL_CopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ EGL_SetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
EGL_ForceGPUSwitchANGLE
EGL_HandleGPUSwitchANGLE
diff --git a/src/libGLESv2/libGLESv2_no_capture_autogen.def b/src/libGLESv2/libGLESv2_no_capture_autogen.def
index 69b8813cca..2a6dcaf7ab 100644
--- a/src/libGLESv2/libGLESv2_no_capture_autogen.def
+++ b/src/libGLESv2/libGLESv2_no_capture_autogen.def
@@ -1334,6 +1334,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
EGL_CopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ EGL_SetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
EGL_ForceGPUSwitchANGLE
EGL_HandleGPUSwitchANGLE
diff --git a/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def b/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
index f0e9ba15d8..4f26348fc9 100644
--- a/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
+++ b/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
@@ -1334,6 +1334,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
EGL_CopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ EGL_SetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
EGL_ForceGPUSwitchANGLE
EGL_HandleGPUSwitchANGLE
diff --git a/src/libGLESv2/libGLESv2_with_capture_autogen.def b/src/libGLESv2/libGLESv2_with_capture_autogen.def
index 8459f034d6..fe74d6f7e9 100644
--- a/src/libGLESv2/libGLESv2_with_capture_autogen.def
+++ b/src/libGLESv2/libGLESv2_with_capture_autogen.def
@@ -1334,6 +1334,9 @@ EXPORTS
; EGL_ANGLE_metal_shared_event_sync
EGL_CopyMetalSharedEventANGLE
+ ; EGL_ANGLE_no_error
+ EGL_SetValidationEnabledANGLE
+
; EGL_ANGLE_power_preference
EGL_ForceGPUSwitchANGLE
EGL_HandleGPUSwitchANGLE
diff --git a/src/libGLESv2/proc_table_egl_autogen.cpp b/src/libGLESv2/proc_table_egl_autogen.cpp
index b2d8ee2783..30b2109509 100644
--- a/src/libGLESv2/proc_table_egl_autogen.cpp
+++ b/src/libGLESv2/proc_table_egl_autogen.cpp
@@ -137,6 +137,7 @@ const ProcEntry g_procTable[] = {
{"eglReleaseThread", P(EGL_ReleaseThread)},
{"eglSetBlobCacheFuncsANDROID", P(EGL_SetBlobCacheFuncsANDROID)},
{"eglSetDamageRegionKHR", P(EGL_SetDamageRegionKHR)},
+ {"eglSetValidationEnabledANGLE", P(EGL_SetValidationEnabledANGLE)},
{"eglSignalSyncKHR", P(EGL_SignalSyncKHR)},
{"eglStreamAttribKHR", P(EGL_StreamAttribKHR)},
{"eglStreamConsumerAcquireKHR", P(EGL_StreamConsumerAcquireKHR)},
diff --git a/src/tests/angle_end2end_tests.gni b/src/tests/angle_end2end_tests.gni
index 71ca0ef1c3..d00ee119c6 100644
--- a/src/tests/angle_end2end_tests.gni
+++ b/src/tests/angle_end2end_tests.gni
@@ -19,6 +19,7 @@ angle_end2end_tests_sources = [
"egl_tests/EGLLockSurface3Test.cpp",
"egl_tests/EGLMultiContextTest.cpp",
"egl_tests/EGLNoConfigContextTest.cpp",
+ "egl_tests/EGLNoErrorTest.cpp",
"egl_tests/EGLPreRotationTest.cpp",
"egl_tests/EGLPrintEGLinfoTest.cpp",
"egl_tests/EGLProgramCacheControlTest.cpp",
diff --git a/src/tests/angle_end2end_tests_expectations.txt b/src/tests/angle_end2end_tests_expectations.txt
index e3f36ba858..f5bdcba673 100644
--- a/src/tests/angle_end2end_tests_expectations.txt
+++ b/src/tests/angle_end2end_tests_expectations.txt
@@ -1408,10 +1408,16 @@ b/292285899 PIXEL4ORXL GLES : EGLSurfaceTest.DestroyAndRecreateWhileCurrent/* =
// WebGPU failures
8485 WGPU : RendererTest.SimpleOperation/* = SKIP
8582 WGPU : ClearTest.* = SKIP
-8457 WGPU : Texture2DTest.* = SKIP
+8547 WGPU : Texture2DTest.Tex* = SKIP
+8547 WGPU : Texture2DTest.Upload* = SKIP
+8547 WGPU : Texture2DTest.*Superseding* = SKIP
+8547 WGPU : Texture2DTest.*Multiple* = SKIP
+8547 WGPU : Texture2DTest.*Copy* = SKIP
+8547 WGPU : Texture2DTest.*Mutable* = SKIP
// Linux/UHD 630 failures caused by OS/driver upgrade.
8683 LINUX INTEL OPENGL : AtomicCounterBufferTest31.AtomicCounterReadCompute/* = SKIP
+8683 LINUX INTEL OPENGL : ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB/* = SKIP
8683 LINUX INTEL OPENGL : ClipControlTest.OriginFragCoord/* = SKIP
8683 LINUX INTEL VULKAN : CubeMapTextureTest.SampleCoordinateTransformGrad/* = SKIP
8683 LINUX INTEL OPENGL : EGLMultiContextTest.ReuseUnterminatedDisplay/* = SKIP
diff --git a/src/tests/compiler_tests/Parse_test.cpp b/src/tests/compiler_tests/Parse_test.cpp
index eeebd76621..439ee14e15 100644
--- a/src/tests/compiler_tests/Parse_test.cpp
+++ b/src/tests/compiler_tests/Parse_test.cpp
@@ -292,3 +292,58 @@ int E=int)";
EXPECT_TRUE(foundErrorInIntermediateTree());
EXPECT_TRUE(foundInIntermediateTree("array has too many dimensions"));
}
+
+TEST_F(ParseTest, DeeplyNestedWhileExpressionsNoCrash)
+{
+ mShaderSpec = SH_WEBGL2_SPEC;
+ std::ostringstream shader;
+ shader << R"(#version 300 es
+void main() {
+)";
+ for (int i = 0; i < 1700; ++i)
+ {
+ shader << " while(true)";
+ }
+ shader << "; }";
+ EXPECT_FALSE(compile(shader.str()));
+ EXPECT_TRUE(foundErrorInIntermediateTree());
+ EXPECT_TRUE(foundInIntermediateTree("statement is too deeply nested"));
+}
+
+TEST_F(ParseTest, DeeplyNestedForExpresionsNoCrash)
+{
+ mShaderSpec = SH_WEBGL2_SPEC;
+ std::ostringstream shader;
+ shader << R"(#version 300 es
+void main() {
+)";
+ for (int i = 0; i < 1700; ++i)
+ {
+ shader << " for(int i = 0; i < 10; i++)";
+ }
+ shader << "; }";
+ EXPECT_FALSE(compile(shader.str()));
+ EXPECT_TRUE(foundErrorInIntermediateTree());
+ EXPECT_TRUE(foundInIntermediateTree("statement is too deeply nested"));
+}
+
+TEST_F(ParseTest, DeeplyNestedDoWhileExpresionsNoCrash)
+{
+ mShaderSpec = SH_WEBGL2_SPEC;
+ std::ostringstream shader;
+ shader << R"(#version 300 es
+void main() {
+)";
+ for (int i = 0; i < 1700; ++i)
+ {
+ shader << " do {";
+ }
+ for (int i = 0; i < 1700; ++i)
+ {
+ shader << "} while(true);";
+ }
+ shader << "}";
+ EXPECT_FALSE(compile(shader.str()));
+ EXPECT_TRUE(foundErrorInIntermediateTree());
+ EXPECT_TRUE(foundInIntermediateTree("statement is too deeply nested"));
+}
diff --git a/src/tests/egl_tests/EGLIOSurfaceClientBufferTest.cpp b/src/tests/egl_tests/EGLIOSurfaceClientBufferTest.cpp
index d098f86535..e413cff0f3 100644
--- a/src/tests/egl_tests/EGLIOSurfaceClientBufferTest.cpp
+++ b/src/tests/egl_tests/EGLIOSurfaceClientBufferTest.cpp
@@ -1293,6 +1293,73 @@ TEST_P(IOSurfaceClientBufferTest, ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSe
});
}
+// Test that the following scenario works:
+// - change IOSurface bound texture's max level to 0.
+// - attach IOSurface bound texture to a FBO 1.
+// - bind FBO 1
+// - clear FBO 1 -> this should trigger render targets initialization in backends.
+// - bind FBO 0.
+// - draw IOSurface bound texture to FBO 0.
+// -> In the past, this could trigger the texture's render targets invalidation in metal backend.
+// See https://issues.chromium.org/issues/335353385
+// - bind FBO 1
+// - blit FBO 0 to FBO 1.
+// -> this will reconstruct render pass descriptor in metal backend.
+// - flush to restart render encoder with new render pass descriptor.
+// - draw.
+TEST_P(IOSurfaceClientBufferTest, SetMaxLevelWouldInvalidateRenderTargetBug)
+{
+ ANGLE_SKIP_TEST_IF(!hasIOSurfaceExt());
+ ANGLE_SKIP_TEST_IF(getClientMajorVersion() < 3);
+
+ ANGLE_GL_PROGRAM(blueProgram, angle::essl1_shaders::vs::Simple(),
+ angle::essl1_shaders::fs::Blue());
+
+ ScopedIOSurfaceRef ioSurface = CreateSinglePlaneIOSurface(1, 1, 'BGRA', 4);
+
+ GLTexture texture;
+ glBindTexture(getGLTextureTarget(), texture);
+
+ // Bind the IOSurface to a texture.
+ EGLSurface pbuffer;
+ bindIOSurfaceToTexture(ioSurface, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, &pbuffer, &texture);
+
+ // 1. Change the texture's max level to 0.
+ glTexParameteri(getGLTextureTarget(), GL_TEXTURE_MAX_LEVEL, 0);
+ EXPECT_GL_NO_ERROR();
+
+ // 2. Attach IOSurface bound texture to a FBO and clear it.
+ GLFramebuffer fbo;
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+ EXPECT_GL_NO_ERROR();
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, getGLTextureTarget(), texture, 0);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_ONE, GL_ONE);
+ glClearColor(1.0f / 255.0f, 2.0f / 255.0f, 3.0f / 255.0f, 4.0f / 255.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ // 3. Draw IOSurface bound texture to default FBO.
+ glBindFramebuffer(GL_FRAMEBUFFER, 0);
+ doSampleTestWithTexture(texture, R | G | B);
+
+ // 3. Draw to custom FBO again
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
+ glClear(GL_COLOR_BUFFER_BIT);
+ // Using a blit is important: it will trigger render pass reconstruction in
+ // metal backend due to DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 dirty bit.
+ glBlitFramebuffer(0, 0, 1, 1, 0, 0, 1, 1, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+ glFlush(); // flush so that render encoder will be recreated again in metal backend.
+ glUseProgram(blueProgram);
+ drawQuad(blueProgram, angle::essl1_shaders::PositionAttrib(), 0.5f);
+ glFlush();
+
+ // Expect the final color to be accumulated color
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
+ EXPECT_GL_NO_ERROR();
+ EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor(1, 2, 255, 255));
+}
+
// TODO(cwallez@chromium.org): Test setting width and height to less than the IOSurface's work as
// expected.
diff --git a/src/tests/egl_tests/EGLNoErrorTest.cpp b/src/tests/egl_tests/EGLNoErrorTest.cpp
new file mode 100644
index 0000000000..c3cb1d49d9
--- /dev/null
+++ b/src/tests/egl_tests/EGLNoErrorTest.cpp
@@ -0,0 +1,43 @@
+//
+// Copyright 2024 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// EGLNoErrorTest.cpp:
+// Tests for the EGL extension EGL_ANGLE_no_error
+//
+
+#include <gtest/gtest.h>
+
+#include "test_utils/ANGLETest.h"
+
+using namespace angle;
+
+class EGLNoErrorTest : public ANGLETest<>
+{};
+
+// Validation errors become undefined behavour with this extension. Simply test turning validation
+// off and on.
+TEST_P(EGLNoErrorTest, EnableDisable)
+{
+ if (IsEGLClientExtensionEnabled("EGL_ANGLE_no_error"))
+ {
+ eglSetValidationEnabledANGLE(EGL_FALSE);
+ eglSetValidationEnabledANGLE(EGL_TRUE);
+ EXPECT_EGL_ERROR(EGL_SUCCESS);
+ }
+ else
+ {
+ eglSetValidationEnabledANGLE(EGL_FALSE);
+ EXPECT_EGL_ERROR(EGL_BAD_ACCESS);
+ }
+}
+
+GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(EGLNoErrorTest);
+ANGLE_INSTANTIATE_TEST(EGLNoErrorTest,
+ ES2_D3D9(),
+ ES2_D3D11(),
+ ES3_D3D11(),
+ ES2_OPENGL(),
+ ES3_OPENGL(),
+ ES2_VULKAN());
diff --git a/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp b/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp
index 2ef80510f8..12b4e58d58 100644
--- a/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp
+++ b/src/tests/egl_tests/EGLPrintEGLinfoTest.cpp
@@ -531,7 +531,8 @@ ANGLE_INSTANTIATE_TEST(EGLPrintEGLinfoTest,
ES2_VULKAN(),
ES3_VULKAN(),
ES32_VULKAN(),
- ES31_VULKAN_SWIFTSHADER());
+ ES31_VULKAN_SWIFTSHADER(),
+ ES32_EGL());
// This test suite is not instantiated on some OSes.
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(EGLPrintEGLinfoTest);
diff --git a/src/tests/gl_tests/ClearTest.cpp b/src/tests/gl_tests/ClearTest.cpp
index dbcb2057c3..9c3dad154c 100644
--- a/src/tests/gl_tests/ClearTest.cpp
+++ b/src/tests/gl_tests/ClearTest.cpp
@@ -473,6 +473,28 @@ TEST_P(ClearTest, RGBA8Framebuffer)
EXPECT_PIXEL_NEAR(0, 0, 128, 128, 128, 128, 1.0);
}
+// Test uploading a texture and then clearing a RGBA8 Framebuffer
+TEST_P(ClearTest, TextureUploadAndRGBA8Framebuffer)
+{
+ glBindFramebuffer(GL_FRAMEBUFFER, mFBOs[0]);
+
+ GLTexture texture;
+
+ constexpr uint32_t kSize = 16;
+ std::vector<GLColor> pixelData(kSize * kSize, GLColor::blue);
+ glBindTexture(GL_TEXTURE_2D, texture);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kSize, kSize, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+ pixelData.data());
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
+
+ EXPECT_PIXEL_NEAR(0, 0, 0, 0, 255, 255, 1.0);
+
+ glClearColor(0.5f, 0.5f, 0.5f, 0.5f);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ EXPECT_PIXEL_NEAR(0, 0, 128, 128, 128, 128, 1.0);
+}
+
// Test to validate that we can go from an RGBA framebuffer attachment, to an RGB one and still
// have a correct behavior after.
TEST_P(ClearTest, ChangeFramebufferAttachmentFromRGBAtoRGB)
diff --git a/src/tests/gl_tests/GLSLTest.cpp b/src/tests/gl_tests/GLSLTest.cpp
index 58feeaf77b..acb0f99fff 100644
--- a/src/tests/gl_tests/GLSLTest.cpp
+++ b/src/tests/gl_tests/GLSLTest.cpp
@@ -3512,6 +3512,26 @@ TEST_P(GLSLTest_ES3, InitGlobalArrayWithArrayIndexing)
EXPECT_NE(0u, program);
}
+// Test that constant global matrix array with an initializer compiles.
+TEST_P(GLSLTest_ES3, InitConstantMatrixArray)
+{
+ constexpr char kFS[] = R"(#version 300 es
+ precision highp float;
+ uniform int index;
+
+ const mat4 matrix = mat4(1.0);
+ const mat4 array[1] = mat4[1](matrix);
+ out vec4 my_FragColor;
+ void main() {
+ my_FragColor = vec4(array[index][1].rgb, 1.0);
+ })";
+
+ ANGLE_GL_PROGRAM(program, essl3_shaders::vs::Simple(), kFS);
+
+ drawQuad(program, essl3_shaders::PositionAttrib(), 0.5f);
+ EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
+}
+
// Test that index-constant sampler array indexing is supported.
TEST_P(GLSLTest, IndexConstantSamplerArrayIndexing)
{
diff --git a/third_party/abseil-cpp/BUILD.gn b/third_party/abseil-cpp/BUILD.gn
index e34f6549cd..35ff42e50c 100644
--- a/third_party/abseil-cpp/BUILD.gn
+++ b/third_party/abseil-cpp/BUILD.gn
@@ -288,6 +288,7 @@ if (absl_build_tests) {
"absl/crc:crc_cord_state_test",
"absl/crc:crc_memcpy_test",
"absl/crc:non_temporal_memcpy_test",
+ "absl/debugging:demangle_rust_test",
"absl/debugging:stacktrace_test",
"absl/flags:flag_test",
"absl/functional:any_invocable_test",
@@ -317,6 +318,7 @@ if (absl_build_tests) {
"absl/numeric:int128_test",
"absl/profiling:exponential_biased_test",
"absl/profiling:periodic_sampler_test",
+ "absl/status:status_matchers_test",
"absl/status:status_test",
"absl/status:statusor_test",
"absl/strings:ascii_test",
diff --git a/third_party/abseil-cpp/CMake/AbseilDll.cmake b/third_party/abseil-cpp/CMake/AbseilDll.cmake
index 28ba25cd5c..c582c2e437 100644
--- a/third_party/abseil-cpp/CMake/AbseilDll.cmake
+++ b/third_party/abseil-cpp/CMake/AbseilDll.cmake
@@ -123,6 +123,8 @@ set(ABSL_INTERNAL_DLL_FILES
"debugging/internal/address_is_readable.h"
"debugging/internal/demangle.cc"
"debugging/internal/demangle.h"
+ "debugging/internal/demangle_rust.cc"
+ "debugging/internal/demangle_rust.h"
"debugging/internal/elf_mem_image.cc"
"debugging/internal/elf_mem_image.h"
"debugging/internal/examine_stack.cc"
@@ -608,6 +610,9 @@ set(ABSL_INTERNAL_TEST_DLL_FILES
"random/internal/mock_overload_set.h"
"random/mocking_bit_gen.h"
"random/mock_distributions.h"
+ "status/status_matchers.h"
+ "status/internal/status_matchers.cc"
+ "status/internal/status_matchers.h"
"strings/cordz_test_helpers.h"
"strings/cord_test_helpers.h"
)
@@ -620,6 +625,7 @@ set(ABSL_INTERNAL_TEST_DLL_TARGETS
"random_internal_distribution_test_util"
"random_internal_mock_overload_set"
"scoped_mock_log"
+ "status_matchers"
)
include(CheckCXXSourceCompiles)
diff --git a/third_party/abseil-cpp/README.chromium b/third_party/abseil-cpp/README.chromium
index 35175fe322..1bf62080ed 100644
--- a/third_party/abseil-cpp/README.chromium
+++ b/third_party/abseil-cpp/README.chromium
@@ -4,7 +4,7 @@ URL: https://github.com/abseil/abseil-cpp
License: Apache 2.0
License File: LICENSE
Version: N/A
-Revision: f638e34270be76d15decb08f0e5d48b6f1f1b2c8
+Revision: e444af7ccc82549c97ebbc17e8af435ccacdc4e2
Security Critical: yes
Shipped: yes
diff --git a/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h b/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h
index aa6a65954f..0f6e3479e6 100644
--- a/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h
+++ b/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h
@@ -123,8 +123,8 @@ uint64_t V128_Extract64(const V128 l);
// Extracts the low 64 bits from V128.
int64_t V128_Low64(const V128 l);
-// Left-shifts packed 64-bit integers in l by r.
-V128 V128_ShiftLeft64(const V128 l, const V128 r);
+// Add packed 64-bit integers in |l| and |r|.
+V128 V128_Add64(const V128 l, const V128 r);
#endif
@@ -193,8 +193,8 @@ inline uint64_t V128_Extract64(const V128 l) {
inline int64_t V128_Low64(const V128 l) { return _mm_cvtsi128_si64(l); }
-inline V128 V128_ShiftLeft64(const V128 l, const V128 r) {
- return _mm_sll_epi64(l, r);
+inline V128 V128_Add64(const V128 l, const V128 r) {
+ return _mm_add_epi64(l, r);
}
#elif defined(ABSL_CRC_INTERNAL_HAVE_ARM_SIMD)
@@ -289,9 +289,7 @@ inline int64_t V128_Low64(const V128 l) {
return vgetq_lane_s64(vreinterpretq_s64_u64(l), 0);
}
-inline V128 V128_ShiftLeft64(const V128 l, const V128 r) {
- return vshlq_u64(l, vreinterpretq_s64_u64(r));
-}
+inline V128 V128_Add64(const V128 l, const V128 r) { return vaddq_u64(l, r); }
#endif
diff --git a/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc b/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc
index 20dd3e017a..79dace34f4 100644
--- a/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc
+++ b/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc
@@ -101,13 +101,17 @@ constexpr size_t kMediumCutoff = 2048;
namespace {
uint32_t multiply(uint32_t a, uint32_t b) {
- V128 shifts = V128_From64WithZeroFill(1);
V128 power = V128_From64WithZeroFill(a);
V128 crc = V128_From64WithZeroFill(b);
V128 res = V128_PMulLow(power, crc);
- // Combine crc values
- res = V128_ShiftLeft64(res, shifts);
+ // Combine crc values.
+ //
+ // Adding res to itself is equivalent to multiplying by 2,
+ // or shifting left by 1. Addition is used as not all compilers
+ // are able to generate optimal code without this hint.
+ // https://godbolt.org/z/rr3fMnf39
+ res = V128_Add64(res, res);
return static_cast<uint32_t>(V128_Extract32<1>(res)) ^
CRC32_u32(0, static_cast<uint32_t>(V128_Low64(res)));
}
diff --git a/third_party/abseil-cpp/absl/debugging/BUILD.bazel b/third_party/abseil-cpp/absl/debugging/BUILD.bazel
index 5baff7a116..22494554c7 100644
--- a/third_party/abseil-cpp/absl/debugging/BUILD.bazel
+++ b/third_party/abseil-cpp/absl/debugging/BUILD.bazel
@@ -219,8 +219,14 @@ cc_library(
cc_library(
name = "demangle_internal",
- srcs = ["internal/demangle.cc"],
- hdrs = ["internal/demangle.h"],
+ srcs = [
+ "internal/demangle.cc",
+ "internal/demangle_rust.cc",
+ ],
+ hdrs = [
+ "internal/demangle.h",
+ "internal/demangle_rust.h",
+ ],
copts = ABSL_DEFAULT_COPTS,
linkopts = ABSL_DEFAULT_LINKOPTS,
visibility = [
@@ -235,6 +241,20 @@ cc_library(
)
cc_test(
+ name = "demangle_rust_test",
+ srcs = ["internal/demangle_rust_test.cc"],
+ copts = ABSL_TEST_COPTS,
+ linkopts = ABSL_DEFAULT_LINKOPTS,
+ deps = [
+ ":demangle_internal",
+ "//absl/base:config",
+ "//absl/base:core_headers",
+ "@com_google_googletest//:gtest",
+ "@com_google_googletest//:gtest_main",
+ ],
+)
+
+cc_test(
name = "demangle_test",
srcs = ["internal/demangle_test.cc"],
copts = ABSL_TEST_COPTS,
diff --git a/third_party/abseil-cpp/absl/debugging/BUILD.gn b/third_party/abseil-cpp/absl/debugging/BUILD.gn
index 0f7a1f3e6b..49523cd61a 100644
--- a/third_party/abseil-cpp/absl/debugging/BUILD.gn
+++ b/third_party/abseil-cpp/absl/debugging/BUILD.gn
@@ -30,7 +30,7 @@ absl_source_set("stacktrace") {
}
absl_test("stacktrace_test") {
- sources = ["stacktrace_test.cc"]
+ sources = [ "stacktrace_test.cc" ]
deps = [
":stacktrace",
"//third_party/abseil-cpp/absl/base:core_headers",
@@ -119,8 +119,14 @@ absl_source_set("debugging_internal") {
}
absl_source_set("demangle_internal") {
- sources = [ "internal/demangle.cc" ]
- public = [ "internal/demangle.h" ]
+ sources = [
+ "internal/demangle.cc",
+ "internal/demangle_rust.cc",
+ ]
+ public = [
+ "internal/demangle.h",
+ "internal/demangle_rust.h",
+ ]
visibility = [
"//third_party/abseil-cpp/absl/container:*",
"//third_party/abseil-cpp/absl/debugging:*",
@@ -132,6 +138,28 @@ absl_source_set("demangle_internal") {
]
}
+absl_test("demangle_rust_test") {
+ sources = [ "internal/demangle_rust_test.cc" ]
+ deps = [
+ ":demangle_internal",
+ "//third_party/abseil-cpp/absl/base:config",
+ "//third_party/abseil-cpp/absl/base:core_headers",
+ ]
+}
+
+# Disabled because this test relies on RTTI
+# absl_test("demangle_test") {
+# sources = [ "internal/demangle_test.cc" ]
+# deps = [
+# ":demangle_internal",
+# ":stack_consumption",
+# "//third_party/abseil-cpp/absl/base:config",
+# "//third_party/abseil-cpp/absl/base:core_headers",
+# "//third_party/abseil-cpp/absl/log",
+# "//third_party/abseil-cpp/absl/memory",
+# ]
+# }
+
absl_source_set("leak_check") {
if (is_ios || is_win) {
sources = []
diff --git a/third_party/abseil-cpp/absl/debugging/CMakeLists.txt b/third_party/abseil-cpp/absl/debugging/CMakeLists.txt
index 65e2af8801..027a6be28b 100644
--- a/third_party/abseil-cpp/absl/debugging/CMakeLists.txt
+++ b/third_party/abseil-cpp/absl/debugging/CMakeLists.txt
@@ -196,8 +196,10 @@ absl_cc_library(
demangle_internal
HDRS
"internal/demangle.h"
+ "internal/demangle_rust.h"
SRCS
"internal/demangle.cc"
+ "internal/demangle_rust.cc"
COPTS
${ABSL_DEFAULT_COPTS}
DEPS
@@ -208,6 +210,19 @@ absl_cc_library(
absl_cc_test(
NAME
+ demangle_rust_test
+ SRCS
+ "internal/demangle_rust_test.cc"
+ COPTS
+ ${ABSL_TEST_COPTS}
+ DEPS
+ absl::demangle_internal
+ absl::config
+ GTest::gmock_main
+)
+
+absl_cc_test(
+ NAME
demangle_test
SRCS
"internal/demangle_test.cc"
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle.cc b/third_party/abseil-cpp/absl/debugging/internal/demangle.cc
index 82420c8b2d..71d4eb0a67 100644
--- a/third_party/abseil-cpp/absl/debugging/internal/demangle.cc
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle.cc
@@ -19,6 +19,7 @@
#include "absl/debugging/internal/demangle.h"
+#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
@@ -26,6 +27,7 @@
#include <string>
#include "absl/base/config.h"
+#include "absl/debugging/internal/demangle_rust.h"
#if ABSL_INTERNAL_HAS_CXA_DEMANGLE
#include <cxxabi.h>
@@ -2110,6 +2112,10 @@ static bool Overflowed(const State *state) {
// The demangler entry point.
bool Demangle(const char* mangled, char* out, size_t out_size) {
+ if (mangled[0] == '_' && mangled[1] == 'R') {
+ return DemangleRustSymbolEncoding(mangled, out, out_size);
+ }
+
State state;
InitState(&state, mangled, out, out_size);
return ParseTopLevelMangledName(&state) && !Overflowed(&state) &&
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle.h b/third_party/abseil-cpp/absl/debugging/internal/demangle.h
index 146d1150ef..e75d1473c7 100644
--- a/third_party/abseil-cpp/absl/debugging/internal/demangle.h
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle.h
@@ -56,6 +56,8 @@ namespace debugging_internal {
//
// See the unit test for more examples.
//
+// Support for Rust mangled names is in development; see demangle_rust.h.
+//
// Note: we might want to write demanglers for ABIs other than Itanium
// C++ ABI in the future.
bool Demangle(const char* mangled, char* out, size_t out_size);
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc
new file mode 100644
index 0000000000..7086cab243
--- /dev/null
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc
@@ -0,0 +1,432 @@
+// Copyright 2024 The Abseil Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "absl/debugging/internal/demangle_rust.h"
+
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
+#include <limits>
+
+#include "absl/base/attributes.h"
+#include "absl/base/config.h"
+
+namespace absl {
+ABSL_NAMESPACE_BEGIN
+namespace debugging_internal {
+
+namespace {
+
+// Same step limit as the C++ demangler in demangle.cc uses.
+constexpr int kMaxReturns = 1 << 17;
+
+bool IsDigit(char c) { return '0' <= c && c <= '9'; }
+bool IsLower(char c) { return 'a' <= c && c <= 'z'; }
+bool IsUpper(char c) { return 'A' <= c && c <= 'Z'; }
+bool IsAlpha(char c) { return IsLower(c) || IsUpper(c); }
+bool IsIdentifierChar(char c) { return IsAlpha(c) || IsDigit(c) || c == '_'; }
+
+// Parser for Rust symbol mangling v0, whose grammar is defined here:
+//
+// https://doc.rust-lang.org/rustc/symbol-mangling/v0.html#symbol-grammar-summary
+class RustSymbolParser {
+ public:
+ // Prepares to demangle the given encoding, a Rust symbol name starting with
+ // _R, into the output buffer [out, out_end). The caller is expected to
+ // continue by calling the new object's Parse function.
+ RustSymbolParser(const char* encoding, char* out, char* const out_end)
+ : encoding_(encoding), out_(out), out_end_(out_end) {
+ if (out_ != out_end_) *out_ = '\0';
+ }
+
+ // Parses the constructor's encoding argument, writing output into the range
+ // [out, out_end). Returns true on success and false for input whose
+ // structure was not recognized or exceeded implementation limits, such as by
+ // nesting structures too deep. In either case *this should not be used
+ // again.
+ ABSL_MUST_USE_RESULT bool Parse() && {
+ // Recursively parses the grammar production named by callee, then resumes
+ // execution at the next statement.
+ //
+ // Recursive-descent parsing is a beautifully readable translation of a
+ // grammar, but it risks stack overflow if implemented by naive recursion on
+ // the C++ call stack. So we simulate recursion by goto and switch instead,
+ // keeping a bounded stack of "return addresses" in the stack_ member.
+ //
+ // The callee argument is a statement label. We goto that label after
+ // saving the "return address" on stack_. The next continue statement in
+ // the for loop below "returns" from this "call".
+ //
+ // The caller argument names the return point. Each value of caller must
+ // appear in only one ABSL_DEMANGLER_RECURSE call and be listed in the
+ // definition of enum ReturnAddress. The switch implements the control
+ // transfer from the end of a "called" subroutine back to the statement
+ // after the "call".
+ //
+ // Note that not all the grammar productions have to be packed into the
+ // switch, but only those which appear in a cycle in the grammar. Anything
+ // acyclic can be written as ordinary functions and function calls, e.g.,
+ // ParseIdentifier.
+#define ABSL_DEMANGLER_RECURSE(callee, caller) \
+ do { \
+ if (depth_ == data_stack_pointer_) return false; \
+ /* The next continue will switch on this saved value ... */ \
+ stack_[depth_++] = caller; \
+ goto callee; \
+ /* ... and will land here, resuming the suspended code. */ \
+ case caller: {} \
+ } while (0)
+
+ // Parse the encoding, counting completed recursive calls to guard against
+ // excessively complex input and infinite-loop bugs.
+ int iter = 0;
+ goto whole_encoding;
+ for (; iter < kMaxReturns && depth_ > 0; ++iter) {
+ // This switch resumes the code path most recently suspended by
+ // ABSL_DEMANGLER_RECURSE.
+ switch (static_cast<ReturnAddress>(stack_[--depth_])) {
+ //
+ // symbol-name ->
+ // _R decimal-number? path instantiating-crate? vendor-specific-suffix?
+ whole_encoding:
+ if (!Eat('_') || !Eat('R')) return false;
+ // decimal-number? is always empty today, so proceed to path, which
+ // can't start with a decimal digit.
+ ABSL_DEMANGLER_RECURSE(path, kInstantiatingCrate);
+ if (IsAlpha(Peek())) {
+ ++silence_depth_; // Print nothing more from here on.
+ ABSL_DEMANGLER_RECURSE(path, kVendorSpecificSuffix);
+ }
+ switch (Take()) {
+ case '.': case '$': case '\0': return true;
+ }
+ return false; // unexpected trailing content
+
+ // path -> crate-root | inherent-impl | trait-impl | trait-definition |
+ // nested-path | generic-args | backref
+ path:
+ switch (Take()) {
+ case 'C': goto crate_root;
+ case 'M': return false; // inherent-impl not yet implemented
+ case 'X': return false; // trait-impl not yet implemented
+ case 'Y': return false; // trait-definition not yet implemented
+ case 'N': goto nested_path;
+ case 'I': return false; // generic-args not yet implemented
+ case 'B': return false; // backref not yet implemented
+ default: return false;
+ }
+
+ // crate-root -> C identifier (C consumed above)
+ crate_root:
+ if (!ParseIdentifier()) return false;
+ continue;
+
+ // nested-path -> N namespace path identifier (N consumed above)
+ // namespace -> lower | upper
+ nested_path:
+ // Uppercase namespaces must be saved on the stack so we can print
+ // ::{closure#0} or ::{shim:vtable#0} or ::{X:name#0} as needed.
+ if (IsUpper(Peek())) {
+ if (!PushByte(static_cast<std::uint8_t>(Take()))) return false;
+ ABSL_DEMANGLER_RECURSE(path, kIdentifierInUppercaseNamespace);
+ if (!Emit("::")) return false;
+ if (!ParseIdentifier(static_cast<char>(PopByte()))) return false;
+ continue;
+ }
+
+ // Lowercase namespaces, however, are never represented in the output;
+ // they all emit just ::name.
+ if (IsLower(Take())) {
+ ABSL_DEMANGLER_RECURSE(path, kIdentifierInLowercaseNamespace);
+ if (!Emit("::")) return false;
+ if (!ParseIdentifier()) return false;
+ continue;
+ }
+
+ // Neither upper or lower
+ return false;
+ }
+ }
+
+ return false; // hit iteration limit or a bug in our stack handling
+ }
+
+ private:
+ // Enumerates resumption points for ABSL_DEMANGLER_RECURSE calls.
+ enum ReturnAddress : std::uint8_t {
+ kInstantiatingCrate,
+ kVendorSpecificSuffix,
+ kIdentifierInUppercaseNamespace,
+ kIdentifierInLowercaseNamespace,
+ };
+
+ // Element count for the stack_ array. A larger kStackSize accommodates more
+ // deeply nested names at the cost of a larger footprint on the C++ call
+ // stack.
+ enum { kStackSize = 256 };
+
+ // Returns the next input character without consuming it.
+ char Peek() const { return encoding_[pos_]; }
+
+ // Consumes and returns the next input character.
+ char Take() { return encoding_[pos_++]; }
+
+ // If the next input character is the given character, consumes it and returns
+ // true; otherwise returns false without consuming a character.
+ ABSL_MUST_USE_RESULT bool Eat(char want) {
+ if (encoding_[pos_] != want) return false;
+ ++pos_;
+ return true;
+ }
+
+ // Provided there is enough remaining output space, appends c to the output,
+ // writing a fresh NUL terminator afterward, and returns true. Returns false
+ // if the output buffer had less than two bytes free.
+ ABSL_MUST_USE_RESULT bool EmitChar(char c) {
+ if (silence_depth_ > 0) return true;
+ if (out_end_ - out_ < 2) return false;
+ *out_++ = c;
+ *out_ = '\0';
+ return true;
+ }
+
+ // Provided there is enough remaining output space, appends the C string token
+ // to the output, followed by a NUL character, and returns true. Returns
+ // false if not everything fit into the output buffer.
+ ABSL_MUST_USE_RESULT bool Emit(const char* token) {
+ if (silence_depth_ > 0) return true;
+ const std::size_t token_length = std::strlen(token);
+ const std::size_t bytes_to_copy = token_length + 1; // token and final NUL
+ if (static_cast<std::size_t>(out_end_ - out_) < bytes_to_copy) return false;
+ std::memcpy(out_, token, bytes_to_copy);
+ out_ += token_length;
+ return true;
+ }
+
+ // Provided there is enough remaining output space, appends the decimal form
+ // of disambiguator (if it's nonnegative) or "?" (if it's negative) to the
+ // output, followed by a NUL character, and returns true. Returns false if
+ // not everything fit into the output buffer.
+ ABSL_MUST_USE_RESULT bool EmitDisambiguator(int disambiguator) {
+ if (disambiguator < 0) return EmitChar('?'); // parsed but too large
+ if (disambiguator == 0) return EmitChar('0');
+ // Convert disambiguator to decimal text. Three digits per byte is enough
+ // because 999 > 256. The bound will remain correct even if future
+ // maintenance changes the type of the disambiguator variable.
+ char digits[3 * sizeof(disambiguator)] = {};
+ std::size_t leading_digit_index = sizeof(digits) - 1;
+ for (; disambiguator > 0; disambiguator /= 10) {
+ digits[--leading_digit_index] =
+ static_cast<char>('0' + disambiguator % 10);
+ }
+ return Emit(digits + leading_digit_index);
+ }
+
+ // Consumes an optional disambiguator (s123_) from the input.
+ //
+ // On success returns true and fills value with the encoded value if it was
+ // not too big, otherwise with -1. If the optional disambiguator was omitted,
+ // value is 0. On parse failure returns false and sets value to -1.
+ ABSL_MUST_USE_RESULT bool ParseDisambiguator(int& value) {
+ value = -1;
+
+ // disambiguator = s base-62-number
+ //
+ // Disambiguators are optional. An omitted disambiguator is zero.
+ if (!Eat('s')) {
+ value = 0;
+ return true;
+ }
+ int base_62_value = 0;
+ if (!ParseBase62Number(base_62_value)) return false;
+ value = base_62_value < 0 ? -1 : base_62_value + 1;
+ return true;
+ }
+
+ // Consumes a base-62 number like _ or 123_ from the input.
+ //
+ // On success returns true and fills value with the encoded value if it was
+ // not too big, otherwise with -1. On parse failure returns false and sets
+ // value to -1.
+ ABSL_MUST_USE_RESULT bool ParseBase62Number(int& value) {
+ value = -1;
+
+ // base-62-number = (digit | lower | upper)* _
+ //
+ // An empty base-62 digit sequence means 0.
+ if (Eat('_')) {
+ value = 0;
+ return true;
+ }
+
+ // A nonempty digit sequence denotes its base-62 value plus 1.
+ int encoded_number = 0;
+ bool overflowed = false;
+ while (IsAlpha(Peek()) || IsDigit(Peek())) {
+ const char c = Take();
+ if (encoded_number >= std::numeric_limits<int>::max()/62) {
+ // If we are close to overflowing an int, keep parsing but stop updating
+ // encoded_number and remember to return -1 at the end. The point is to
+ // avoid undefined behavior while parsing crate-root disambiguators,
+ // which are large in practice but not shown in demangling, while
+ // successfully computing closure and shim disambiguators, which are
+ // typically small and are printed out.
+ overflowed = true;
+ } else {
+ int digit;
+ if (IsDigit(c)) {
+ digit = c - '0';
+ } else if (IsLower(c)) {
+ digit = c - 'a' + 10;
+ } else {
+ digit = c - 'A' + 36;
+ }
+ encoded_number = 62 * encoded_number + digit;
+ }
+ }
+
+ if (!Eat('_')) return false;
+ if (!overflowed) value = encoded_number + 1;
+ return true;
+ }
+
+ // Consumes an identifier from the input, returning true on success.
+ //
+ // A nonzero uppercase_namespace specifies the character after the N in a
+ // nested-identifier, e.g., 'C' for a closure, allowing ParseIdentifier to
+ // write out the name with the conventional decoration for that namespace.
+ ABSL_MUST_USE_RESULT bool ParseIdentifier(char uppercase_namespace = '\0') {
+ // identifier -> disambiguator? undisambiguated-identifier
+ int disambiguator = 0;
+ if (!ParseDisambiguator(disambiguator)) return false;
+
+ // undisambiguated-identifier -> u? decimal-number _? bytes
+ const bool is_punycoded = Eat('u');
+ if (!IsDigit(Peek())) return false;
+ int num_bytes = 0;
+ if (!ParseDecimalNumber(num_bytes)) return false;
+ (void)Eat('_'); // optional separator, needed if a digit follows
+
+ // Emit the beginnings of braced forms like {shim:vtable#0}.
+ if (uppercase_namespace == '\0') {
+ if (is_punycoded && !Emit("{Punycode ")) return false;
+ } else {
+ switch (uppercase_namespace) {
+ case 'C':
+ if (!Emit("{closure")) return false;
+ break;
+ case 'S':
+ if (!Emit("{shim")) return false;
+ break;
+ default:
+ if (!EmitChar('{') || !EmitChar(uppercase_namespace)) return false;
+ break;
+ }
+ if (num_bytes > 0 && !Emit(":")) return false;
+ }
+
+ // Emit the name itself.
+ for (int i = 0; i < num_bytes; ++i) {
+ const char c = Take();
+ if (!IsIdentifierChar(c) &&
+ // The spec gives toolchains the choice of Punycode or raw UTF-8 for
+ // identifiers containing code points above 0x7f, so accept bytes with
+ // the high bit set if this is not a u... encoding.
+ (is_punycoded || (c & 0x80) == 0)) {
+ return false;
+ }
+ if (!EmitChar(c)) return false;
+ }
+
+ // Emit the endings of braced forms: "#42}" or "}".
+ if (uppercase_namespace != '\0') {
+ if (!EmitChar('#')) return false;
+ if (!EmitDisambiguator(disambiguator)) return false;
+ }
+ if (uppercase_namespace != '\0' || is_punycoded) {
+ if (!EmitChar('}')) return false;
+ }
+
+ return true;
+ }
+
+ // Consumes a decimal number like 0 or 123 from the input. On success returns
+ // true and fills value with the encoded value. If the encoded value is too
+ // large or otherwise unparsable, returns false and sets value to -1.
+ ABSL_MUST_USE_RESULT bool ParseDecimalNumber(int& value) {
+ value = -1;
+ if (!IsDigit(Peek())) return false;
+ int encoded_number = Take() - '0';
+ if (encoded_number == 0) {
+ // Decimal numbers are never encoded with extra leading zeroes.
+ value = 0;
+ return true;
+ }
+ while (IsDigit(Peek()) &&
+ // avoid overflow
+ encoded_number < std::numeric_limits<int>::max()/10) {
+ encoded_number = 10 * encoded_number + (Take() - '0');
+ }
+ if (IsDigit(Peek())) return false; // too big
+ value = encoded_number;
+ return true;
+ }
+
+ // Pushes byte onto the data stack (the right side of stack_) and returns
+ // true if stack_ is not full, else returns false.
+ ABSL_MUST_USE_RESULT bool PushByte(std::uint8_t byte) {
+ if (depth_ == data_stack_pointer_) return false;
+ stack_[--data_stack_pointer_] = byte;
+ return true;
+ }
+
+ // Pops the last pushed data byte from stack_. Requires that the data stack
+ // is not empty (data_stack_pointer_ < kStackSize).
+ std::uint8_t PopByte() { return stack_[data_stack_pointer_++]; }
+
+ // Call and data stacks reside in stack_. The leftmost depth_ elements
+ // contain ReturnAddresses pushed by ABSL_DEMANGLER_RECURSE. The elements
+ // from index data_stack_pointer_ to the right edge of stack_ contain bytes
+ // pushed by PushByte.
+ std::uint8_t stack_[kStackSize] = {};
+ int data_stack_pointer_ = kStackSize;
+ int depth_ = 0;
+
+ // Anything parsed while silence_depth_ > 0 contributes nothing to the
+ // demangled output. For constructs omitted from the demangling, such as
+ // impl-path and the contents of generic-args, we will increment
+ // silence_depth_ on the way in and decrement silence_depth_ on the way out.
+ int silence_depth_ = 0;
+
+ // Input: encoding_ points just after the _R in a Rust mangled symbol, and
+ // encoding_[pos_] is the next input character to be scanned.
+ int pos_ = 0;
+ const char* encoding_ = nullptr;
+
+ // Output: *out_ is where the next output character should be written, and
+ // out_end_ points past the last byte of available space.
+ char* out_ = nullptr;
+ char* out_end_ = nullptr;
+};
+
+} // namespace
+
+bool DemangleRustSymbolEncoding(const char* mangled, char* out,
+ std::size_t out_size) {
+ return RustSymbolParser(mangled, out, out + out_size).Parse();
+}
+
+} // namespace debugging_internal
+ABSL_NAMESPACE_END
+} // namespace absl
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h
new file mode 100644
index 0000000000..8e9060b42f
--- /dev/null
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h
@@ -0,0 +1,47 @@
+// Copyright 2024 The Abseil Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef ABSL_DEBUGGING_INTERNAL_DEMANGLE_RUST_H_
+#define ABSL_DEBUGGING_INTERNAL_DEMANGLE_RUST_H_
+
+#include <cstddef>
+
+#include "absl/base/config.h"
+
+namespace absl {
+ABSL_NAMESPACE_BEGIN
+namespace debugging_internal {
+
+// Demangle the Rust encoding `mangled`. On success, return true and write the
+// demangled symbol name to `out`. Otherwise, return false, leaving unspecified
+// contents in `out`. For example, calling DemangleRustSymbolEncoding with
+// `mangled = "_RNvC8my_crate7my_func"` will yield `my_crate::my_func` in `out`,
+// provided `out_size` is large enough for that value and its trailing NUL.
+//
+// DemangleRustSymbolEncoding is async-signal-safe and runs in bounded C++
+// call-stack space. It is suitable for symbolizing stack traces in a signal
+// handler.
+//
+// The demangling logic is under development. In this version of Abseil,
+// DemangleRustSymbolEncoding parses a few simple kinds of symbol names, but
+// nothing having backreferences in the input or angle brackets in the
+// demangling, and it emits raw Punycode instead of the UTF-8 represented by it.
+bool DemangleRustSymbolEncoding(const char* mangled, char* out,
+ std::size_t out_size);
+
+} // namespace debugging_internal
+ABSL_NAMESPACE_END
+} // namespace absl
+
+#endif // ABSL_DEBUGGING_INTERNAL_DEMANGLE_RUST_H_
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc
new file mode 100644
index 0000000000..2841576ef9
--- /dev/null
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc
@@ -0,0 +1,216 @@
+// Copyright 2024 The Abseil Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "absl/debugging/internal/demangle_rust.h"
+
+#include <cstddef>
+#include <string>
+
+#include "gtest/gtest.h"
+#include "absl/base/config.h"
+
+namespace absl {
+ABSL_NAMESPACE_BEGIN
+namespace debugging_internal {
+namespace {
+
+// If DemangleRustSymbolEncoding(mangled, <buffer with room for buffer_size
+// chars>, buffer_size) returns true and seems not to have overrun its output
+// buffer, returns the string written by DemangleRustSymbolEncoding; otherwise
+// returns an error message.
+std::string ResultOfDemangling(const char* mangled, std::size_t buffer_size) {
+ // Fill the buffer with something other than NUL so we test whether Demangle
+ // appends trailing NUL as expected.
+ std::string buffer(buffer_size + 1, '~');
+ constexpr char kCanaryCharacter = 0x7f; // arbitrary unlikely value
+ buffer[buffer_size] = kCanaryCharacter;
+ if (!DemangleRustSymbolEncoding(mangled, &buffer[0], buffer_size)) {
+ return "Failed parse";
+ }
+ if (buffer[buffer_size] != kCanaryCharacter) {
+ return "Buffer overrun by output: " + buffer.substr(0, buffer_size + 1)
+ + "...";
+ }
+ return buffer.data(); // Not buffer itself: this trims trailing padding.
+}
+
+// Tests that DemangleRustSymbolEncoding converts mangled into plaintext given
+// enough output buffer space but returns false and avoids overrunning a buffer
+// that is one byte too short.
+//
+// The lambda wrapping allows ASSERT_EQ to branch out the first time an
+// expectation is not satisfied, preventing redundant errors for the same bug.
+//
+// We test first with excess space so that if the algorithm just computes the
+// wrong answer, it will be clear from the error log that the bounds checks are
+// unlikely to be the code at fault.
+#define EXPECT_DEMANGLING(mangled, plaintext) \
+ do { \
+ [] { \
+ constexpr std::size_t plenty_of_space = sizeof(plaintext) + 128; \
+ constexpr std::size_t just_enough_space = sizeof(plaintext); \
+ constexpr std::size_t one_byte_too_few = sizeof(plaintext) - 1; \
+ const char* expected_plaintext = plaintext; \
+ const char* expected_error = "Failed parse"; \
+ ASSERT_EQ(ResultOfDemangling(mangled, plenty_of_space), \
+ expected_plaintext); \
+ ASSERT_EQ(ResultOfDemangling(mangled, just_enough_space), \
+ expected_plaintext); \
+ ASSERT_EQ(ResultOfDemangling(mangled, one_byte_too_few), \
+ expected_error); \
+ }(); \
+ } while (0)
+
+// Tests that DemangleRustSymbolEncoding rejects the given input (typically, a
+// truncation of a real Rust symbol name).
+#define EXPECT_DEMANGLING_FAILS(mangled) \
+ do { \
+ constexpr std::size_t plenty_of_space = 1024; \
+ const char* expected_error = "Failed parse"; \
+ EXPECT_EQ(ResultOfDemangling(mangled, plenty_of_space), expected_error); \
+ } while (0)
+
+// Piping grep -C 1 _R demangle_test.cc into your favorite c++filt
+// implementation allows you to verify that the goldens below are reasonable.
+
+TEST(DemangleRust, EmptyDemangling) {
+ EXPECT_TRUE(DemangleRustSymbolEncoding("_RC0", nullptr, 0));
+}
+
+TEST(DemangleRust, FunctionAtCrateLevel) {
+ EXPECT_DEMANGLING("_RNvC10crate_name9func_name", "crate_name::func_name");
+ EXPECT_DEMANGLING(
+ "_RNvCs09azAZ_10crate_name9func_name", "crate_name::func_name");
+}
+
+TEST(DemangleRust, TruncationsOfFunctionAtCrateLevel) {
+ EXPECT_DEMANGLING_FAILS("_R");
+ EXPECT_DEMANGLING_FAILS("_RN");
+ EXPECT_DEMANGLING_FAILS("_RNvC");
+ EXPECT_DEMANGLING_FAILS("_RNvC10");
+ EXPECT_DEMANGLING_FAILS("_RNvC10crate_nam");
+ EXPECT_DEMANGLING_FAILS("_RNvC10crate_name");
+ EXPECT_DEMANGLING_FAILS("_RNvC10crate_name9");
+ EXPECT_DEMANGLING_FAILS("_RNvC10crate_name9func_nam");
+ EXPECT_DEMANGLING_FAILS("_RNvCs");
+ EXPECT_DEMANGLING_FAILS("_RNvCs09azAZ");
+ EXPECT_DEMANGLING_FAILS("_RNvCs09azAZ_");
+}
+
+TEST(DemangleRust, VendorSuffixes) {
+ EXPECT_DEMANGLING("_RNvC10crate_name9func_name.!@#", "crate_name::func_name");
+ EXPECT_DEMANGLING("_RNvC10crate_name9func_name$!@#", "crate_name::func_name");
+}
+
+TEST(DemangleRust, UnicodeIdentifiers) {
+ EXPECT_DEMANGLING("_RNvC7ice_cap17Eyjafjallajökull",
+ "ice_cap::Eyjafjallajökull");
+ EXPECT_DEMANGLING("_RNvC7ice_caps_u19Eyjafjallajkull_jtb",
+ "ice_cap::{Punycode Eyjafjallajkull_jtb}");
+}
+
+TEST(DemangleRust, FunctionInModule) {
+ EXPECT_DEMANGLING("_RNvNtCs09azAZ_10crate_name11module_name9func_name",
+ "crate_name::module_name::func_name");
+}
+
+TEST(DemangleRust, FunctionInFunction) {
+ EXPECT_DEMANGLING(
+ "_RNvNvCs09azAZ_10crate_name15outer_func_name15inner_func_name",
+ "crate_name::outer_func_name::inner_func_name");
+}
+
+TEST(DemangleRust, ClosureInFunction) {
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_name0",
+ "crate_name::func_name::{closure#0}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_name0Cs123_12client_crate",
+ "crate_name::func_name::{closure#0}");
+}
+
+TEST(DemangleRust, ClosureNumbering) {
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_names_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#1}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_names0_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#2}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_names9_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#11}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_namesa_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#12}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_namesz_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#37}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_namesA_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#38}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_namesZ_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#63}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_names10_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#64}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_namesg6_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#1000}");
+}
+
+TEST(DemangleRust, ClosureNumberOverflowingInt) {
+ EXPECT_DEMANGLING(
+ "_RNCNvCs09azAZ_10crate_name9func_names1234567_0Cs123_12client_crate",
+ "crate_name::func_name::{closure#?}");
+}
+
+TEST(DemangleRust, UnexpectedlyNamedClosure) {
+ EXPECT_DEMANGLING(
+ "_RNCNvCs123_10crate_name9func_name12closure_nameCs456_12client_crate",
+ "crate_name::func_name::{closure:closure_name#0}");
+ EXPECT_DEMANGLING(
+ "_RNCNvCs123_10crate_name9func_names2_12closure_nameCs456_12client_crate",
+ "crate_name::func_name::{closure:closure_name#4}");
+}
+
+TEST(DemangleRust, ItemNestedInsideClosure) {
+ EXPECT_DEMANGLING(
+ "_RNvNCNvCs123_10crate_name9func_name015inner_func_nameCs_12client_crate",
+ "crate_name::func_name::{closure#0}::inner_func_name");
+}
+
+TEST(DemangleRust, Shim) {
+ EXPECT_DEMANGLING(
+ "_RNSNvCs123_10crate_name9func_name6vtableCs456_12client_crate",
+ "crate_name::func_name::{shim:vtable#0}");
+}
+
+TEST(DemangleRust, UnknownUppercaseNamespace) {
+ EXPECT_DEMANGLING(
+ "_RNXNvCs123_10crate_name9func_name14mystery_objectCs456_12client_crate",
+ "crate_name::func_name::{X:mystery_object#0}");
+}
+
+TEST(DemangleRust, NestedUppercaseNamespaces) {
+ EXPECT_DEMANGLING(
+ "_RNCNXNYCs123_10crate_names0_1ys1_1xs2_0Cs456_12client_crate",
+ "crate_name::{Y:y#2}::{X:x#3}::{closure#4}");
+}
+
+
+} // namespace
+} // namespace debugging_internal
+ABSL_NAMESPACE_END
+} // namespace absl
diff --git a/third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc b/third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc
index 2771d4d0e6..b6318302cf 100644
--- a/third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc
+++ b/third_party/abseil-cpp/absl/debugging/internal/demangle_test.cc
@@ -300,6 +300,15 @@ TEST(Demangle, AbiTags) {
EXPECT_STREQ("C[abi:bar][abi:foo]()", tmp);
}
+// Test one Rust symbol to exercise Demangle's delegation path. Rust demangling
+// itself is more thoroughly tested in demangle_rust_test.cc.
+TEST(Demangle, DelegatesToDemangleRustSymbolEncoding) {
+ char tmp[80];
+
+ EXPECT_TRUE(Demangle("_RNvC8my_crate7my_func", tmp, sizeof(tmp)));
+ EXPECT_STREQ("my_crate::my_func", tmp);
+}
+
// Tests that verify that Demangle footprint is within some limit.
// They are not to be run under sanitizers as the sanitizers increase
// stack consumption by about 4x.
diff --git a/third_party/abseil-cpp/absl/functional/any_invocable.h b/third_party/abseil-cpp/absl/functional/any_invocable.h
index 176077ae1b..bc980731b4 100644
--- a/third_party/abseil-cpp/absl/functional/any_invocable.h
+++ b/third_party/abseil-cpp/absl/functional/any_invocable.h
@@ -151,6 +151,12 @@ ABSL_NAMESPACE_BEGIN
//
// Attempting to call `absl::AnyInvocable` multiple times in such a case
// results in undefined behavior.
+//
+// Invoking an empty `absl::AnyInvocable` results in undefined behavior:
+//
+// // Create an empty instance using the default constructor.
+// AnyInvocable<void()> empty;
+// empty(); // WARNING: Undefined behavior!
template <class Sig>
class AnyInvocable : private internal_any_invocable::Impl<Sig> {
private:
@@ -167,6 +173,7 @@ class AnyInvocable : private internal_any_invocable::Impl<Sig> {
// Constructors
// Constructs the `AnyInvocable` in an empty state.
+ // Invoking it results in undefined behavior.
AnyInvocable() noexcept = default;
AnyInvocable(std::nullptr_t) noexcept {} // NOLINT
@@ -277,6 +284,8 @@ class AnyInvocable : private internal_any_invocable::Impl<Sig> {
// In other words:
// std::function<void()> f; // empty
// absl::AnyInvocable<void()> a = std::move(f); // not empty
+ //
+ // Invoking an empty `AnyInvocable` results in undefined behavior.
explicit operator bool() const noexcept { return this->HasValue(); }
// Invokes the target object of `*this`. `*this` must not be empty.
diff --git a/third_party/abseil-cpp/absl/functional/internal/any_invocable.h b/third_party/abseil-cpp/absl/functional/internal/any_invocable.h
index b04436d1d6..ce58fd8cab 100644
--- a/third_party/abseil-cpp/absl/functional/internal/any_invocable.h
+++ b/third_party/abseil-cpp/absl/functional/internal/any_invocable.h
@@ -19,11 +19,11 @@
////////////////////////////////////////////////////////////////////////////////
// //
-// This implementation of the proposed `any_invocable` uses an approach that //
-// chooses between local storage and remote storage for the contained target //
-// object based on the target object's size, alignment requirements, and //
-// whether or not it has a nothrow move constructor. Additional optimizations //
-// are performed when the object is a trivially copyable type [basic.types]. //
+// This implementation chooses between local storage and remote storage for //
+// the contained target object based on the target object's size, alignment //
+// requirements, and whether or not it has a nothrow move constructor. //
+// Additional optimizations are performed when the object is a trivially //
+// copyable type [basic.types]. //
// //
// There are three datamembers per `AnyInvocable` instance //
// //
@@ -39,7 +39,7 @@
// target object, directly returning the result. //
// //
// When in the logically empty state, the manager function is an empty //
-// function and the invoker function is one that would be undefined-behavior //
+// function and the invoker function is one that would be undefined behavior //
// to call. //
// //
// An additional optimization is performed when converting from one //
diff --git a/third_party/abseil-cpp/absl/numeric/internal/bits.h b/third_party/abseil-cpp/absl/numeric/internal/bits.h
index bfef06bce1..0917464d6a 100644
--- a/third_party/abseil-cpp/absl/numeric/internal/bits.h
+++ b/third_party/abseil-cpp/absl/numeric/internal/bits.h
@@ -167,7 +167,9 @@ CountLeadingZeroes32(uint32_t x) {
ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CLZ inline int
CountLeadingZeroes16(uint16_t x) {
-#if ABSL_HAVE_BUILTIN(__builtin_clzs)
+#if ABSL_HAVE_BUILTIN(__builtin_clzg)
+ return x == 0 ? 16 : __builtin_clzg(x);
+#elif ABSL_HAVE_BUILTIN(__builtin_clzs)
static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
"__builtin_clzs does not take 16-bit arg");
return x == 0 ? 16 : __builtin_clzs(x);
@@ -303,7 +305,9 @@ CountTrailingZeroesNonzero64(uint64_t x) {
ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CTZ inline int
CountTrailingZeroesNonzero16(uint16_t x) {
-#if ABSL_HAVE_BUILTIN(__builtin_ctzs)
+#if ABSL_HAVE_BUILTIN(__builtin_ctzg)
+ return __builtin_ctzg(x);
+#elif ABSL_HAVE_BUILTIN(__builtin_ctzs)
static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
"__builtin_ctzs does not take 16-bit arg");
return __builtin_ctzs(x);
diff --git a/third_party/abseil-cpp/absl/random/distributions.h b/third_party/abseil-cpp/absl/random/distributions.h
index 16b76eeaaf..d62f7f3b96 100644
--- a/third_party/abseil-cpp/absl/random/distributions.h
+++ b/third_party/abseil-cpp/absl/random/distributions.h
@@ -32,8 +32,8 @@
// continuously and independently at a constant average rate
// * `absl::Gaussian` (also known as "normal distributions") for continuous
// distributions using an associated quadratic function
-// * `absl::LogUniform` for continuous uniform distributions where the log
-// to the given base of all values is uniform
+// * `absl::LogUniform` for discrete distributions where the log to the given
+// base of all values is uniform
// * `absl::Poisson` for discrete probability distributions that express the
// probability of a given number of events occurring within a fixed interval
// * `absl::Zipf` for discrete probability distributions commonly used for
diff --git a/third_party/abseil-cpp/absl/status/BUILD.bazel b/third_party/abseil-cpp/absl/status/BUILD.bazel
index 981b37fda7..8822e0f6e9 100644
--- a/third_party/abseil-cpp/absl/status/BUILD.bazel
+++ b/third_party/abseil-cpp/absl/status/BUILD.bazel
@@ -118,6 +118,7 @@ cc_test(
srcs = ["statusor_test.cc"],
deps = [
":status",
+ ":status_matchers",
":statusor",
"//absl/base",
"//absl/memory",
@@ -129,3 +130,38 @@ cc_test(
"@com_google_googletest//:gtest_main",
],
)
+
+cc_library(
+ name = "status_matchers",
+ testonly = 1,
+ srcs = [
+ "internal/status_matchers.cc",
+ "internal/status_matchers.h",
+ ],
+ hdrs = ["status_matchers.h"],
+ copts = ABSL_DEFAULT_COPTS,
+ linkopts = ABSL_DEFAULT_LINKOPTS,
+ deps = [
+ ":status",
+ ":statusor",
+ "//absl/base:config",
+ "//absl/strings:string_view",
+ "@com_google_googletest//:gtest",
+ ],
+)
+
+cc_test(
+ name = "status_matchers_test",
+ size = "small",
+ srcs = ["status_matchers_test.cc"],
+ copts = ABSL_TEST_COPTS,
+ linkopts = ABSL_DEFAULT_LINKOPTS,
+ deps = [
+ ":status",
+ ":status_matchers",
+ ":statusor",
+ "//absl/strings",
+ "@com_google_googletest//:gtest",
+ "@com_google_googletest//:gtest_main",
+ ],
+)
diff --git a/third_party/abseil-cpp/absl/status/BUILD.gn b/third_party/abseil-cpp/absl/status/BUILD.gn
index 2968d41e8a..e4b98f64ba 100644
--- a/third_party/abseil-cpp/absl/status/BUILD.gn
+++ b/third_party/abseil-cpp/absl/status/BUILD.gn
@@ -79,6 +79,7 @@ absl_test("statusor_test") {
sources = [ "statusor_test.cc" ]
deps = [
":status",
+ ":status_matchers",
":statusor",
"//third_party/abseil-cpp/absl/base",
"//third_party/abseil-cpp/absl/memory",
@@ -89,3 +90,30 @@ absl_test("statusor_test") {
"//third_party/abseil-cpp/absl/utility",
]
}
+
+absl_source_set("status_matchers") {
+ testonly = true
+ public = [ "status_matchers.h" ]
+ sources = [
+ "internal/status_matchers.cc",
+ "internal/status_matchers.h",
+ ]
+ deps = [
+ ":status",
+ ":statusor",
+ "//third_party/abseil-cpp/absl/base:config",
+ "//third_party/abseil-cpp/absl/strings:string_view",
+ "//third_party/googletest:gmock",
+ "//third_party/googletest:gtest",
+ ]
+}
+
+absl_test("status_matchers_test") {
+ sources = [ "status_matchers_test.cc" ]
+ deps = [
+ ":status",
+ ":status_matchers",
+ ":statusor",
+ "//third_party/abseil-cpp/absl/strings",
+ ]
+}
diff --git a/third_party/abseil-cpp/absl/status/CMakeLists.txt b/third_party/abseil-cpp/absl/status/CMakeLists.txt
index 00415ab94d..24c01e7ac9 100644
--- a/third_party/abseil-cpp/absl/status/CMakeLists.txt
+++ b/third_party/abseil-cpp/absl/status/CMakeLists.txt
@@ -98,7 +98,45 @@ absl_cc_test(
${ABSL_TEST_COPTS}
DEPS
absl::status
+ absl::status_matchers
absl::statusor
absl::strings
GTest::gmock_main
)
+
+absl_cc_library(
+ NAME
+ status_matchers
+ HDRS
+ "status_matchers.h"
+ SRCS
+ "internal/status_matchers.h"
+ "internal/status_matchers.cc"
+ COPTS
+ ${ABSL_DEFAULT_COPTS}
+ LINKOPTS
+ ${ABSL_DEFAULT_LINKOPTS}
+ DEPS
+ absl::base
+ absl::status
+ absl::statusor
+ absl::strings
+ GTest::gmock
+ GTest::gtest
+ PUBLIC
+ TESTONLY
+)
+
+absl_cc_test(
+ NAME
+ status_matchers_test
+ SRCS
+ "status_matchers_test.cc"
+ COPTS
+ ${ABSL_TEST_COPTS}
+ DEPS
+ absl::status
+ absl::statusor
+ absl::status_matchers
+ GTest::gmock_main
+)
diff --git a/third_party/abseil-cpp/absl/status/internal/status_matchers.cc b/third_party/abseil-cpp/absl/status/internal/status_matchers.cc
new file mode 100644
index 0000000000..908b70bbc4
--- /dev/null
+++ b/third_party/abseil-cpp/absl/status/internal/status_matchers.cc
@@ -0,0 +1,68 @@
+// Copyright 2024 The Abseil Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// -----------------------------------------------------------------------------
+// File: status_matchers.cc
+// -----------------------------------------------------------------------------
+
+#include "absl/status/internal/status_matchers.h"
+
+#include <ostream>
+#include <string>
+
+#include "gmock/gmock.h" // gmock_for_status_matchers.h
+#include "absl/base/config.h"
+#include "absl/status/status.h"
+
+namespace absl_testing {
+ABSL_NAMESPACE_BEGIN
+namespace status_internal {
+
+void StatusIsMatcherCommonImpl::DescribeTo(std::ostream* os) const {
+ *os << ", has a status code that ";
+ code_matcher_.DescribeTo(os);
+ *os << ", and has an error message that ";
+ message_matcher_.DescribeTo(os);
+}
+
+void StatusIsMatcherCommonImpl::DescribeNegationTo(std::ostream* os) const {
+ *os << ", or has a status code that ";
+ code_matcher_.DescribeNegationTo(os);
+ *os << ", or has an error message that ";
+ message_matcher_.DescribeNegationTo(os);
+}
+
+bool StatusIsMatcherCommonImpl::MatchAndExplain(
+ const ::absl::Status& status,
+ ::testing::MatchResultListener* result_listener) const {
+ ::testing::StringMatchResultListener inner_listener;
+ if (!code_matcher_.MatchAndExplain(status.code(), &inner_listener)) {
+ *result_listener << (inner_listener.str().empty()
+ ? "whose status code is wrong"
+ : "which has a status code " +
+ inner_listener.str());
+ return false;
+ }
+
+ if (!message_matcher_.Matches(std::string(status.message()))) {
+ *result_listener << "whose error message is wrong";
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace status_internal
+ABSL_NAMESPACE_END
+} // namespace absl_testing
diff --git a/third_party/abseil-cpp/absl/status/internal/status_matchers.h b/third_party/abseil-cpp/absl/status/internal/status_matchers.h
new file mode 100644
index 0000000000..d11742b729
--- /dev/null
+++ b/third_party/abseil-cpp/absl/status/internal/status_matchers.h
@@ -0,0 +1,246 @@
+// Copyright 2024 The Abseil Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef ABSL_STATUS_INTERNAL_STATUS_MATCHERS_H_
+#define ABSL_STATUS_INTERNAL_STATUS_MATCHERS_H_
+
+#include <ostream> // NOLINT
+#include <string>
+#include <type_traits>
+#include <utility>
+
+#include "gmock/gmock.h" // gmock_for_status_matchers.h
+#include "absl/base/config.h"
+#include "absl/status/status.h"
+#include "absl/status/statusor.h"
+#include "absl/strings/string_view.h"
+
+namespace absl_testing {
+ABSL_NAMESPACE_BEGIN
+namespace status_internal {
+
+inline const absl::Status& GetStatus(const absl::Status& status) {
+ return status;
+}
+
+template <typename T>
+inline const absl::Status& GetStatus(const absl::StatusOr<T>& status) {
+ return status.status();
+}
+
+////////////////////////////////////////////////////////////
+// Implementation of IsOkAndHolds().
+
+// Monomorphic implementation of matcher IsOkAndHolds(m). StatusOrType is a
+// reference to StatusOr<T>.
+template <typename StatusOrType>
+class IsOkAndHoldsMatcherImpl
+ : public ::testing::MatcherInterface<StatusOrType> {
+ public:
+ typedef
+ typename std::remove_reference<StatusOrType>::type::value_type value_type;
+
+ template <typename InnerMatcher>
+ explicit IsOkAndHoldsMatcherImpl(InnerMatcher&& inner_matcher)
+ : inner_matcher_(::testing::SafeMatcherCast<const value_type&>(
+ std::forward<InnerMatcher>(inner_matcher))) {}
+
+ void DescribeTo(std::ostream* os) const override {
+ *os << "is OK and has a value that ";
+ inner_matcher_.DescribeTo(os);
+ }
+
+ void DescribeNegationTo(std::ostream* os) const override {
+ *os << "isn't OK or has a value that ";
+ inner_matcher_.DescribeNegationTo(os);
+ }
+
+ bool MatchAndExplain(
+ StatusOrType actual_value,
+ ::testing::MatchResultListener* result_listener) const override {
+ if (!actual_value.ok()) {
+ *result_listener << "which has status " << actual_value.status();
+ return false;
+ }
+
+ // Call through to the inner matcher.
+ return inner_matcher_.MatchAndExplain(*actual_value, result_listener);
+ }
+
+ private:
+ const ::testing::Matcher<const value_type&> inner_matcher_;
+};
+
+// Implements IsOkAndHolds(m) as a polymorphic matcher.
+template <typename InnerMatcher>
+class IsOkAndHoldsMatcher {
+ public:
+ explicit IsOkAndHoldsMatcher(InnerMatcher inner_matcher)
+ : inner_matcher_(std::forward<InnerMatcher>(inner_matcher)) {}
+
+ // Converts this polymorphic matcher to a monomorphic matcher of the
+ // given type. StatusOrType can be either StatusOr<T> or a
+ // reference to StatusOr<T>.
+ template <typename StatusOrType>
+ operator ::testing::Matcher<StatusOrType>() const { // NOLINT
+ return ::testing::Matcher<StatusOrType>(
+ new IsOkAndHoldsMatcherImpl<const StatusOrType&>(inner_matcher_));
+ }
+
+ private:
+ const InnerMatcher inner_matcher_;
+};
+
+////////////////////////////////////////////////////////////
+// Implementation of StatusIs().
+
+// `StatusCode` is implicitly convertible from `int`, `absl::StatusCode`, and
+// is explicitly convertible to these types as well.
+//
+// We need this class because `absl::StatusCode` (as a scoped enum) is not
+// implicitly convertible to `int`. In order to handle use cases like
+// ```
+// StatusIs(Anyof(absl::StatusCode::kUnknown, absl::StatusCode::kCancelled))
+// ```
+// which uses polymorphic matchers, we need to unify the interfaces into
+// `Matcher<StatusCode>`.
+class StatusCode {
+ public:
+ /*implicit*/ StatusCode(int code) // NOLINT
+ : code_(static_cast<::absl::StatusCode>(code)) {}
+ /*implicit*/ StatusCode(::absl::StatusCode code) : code_(code) {} // NOLINT
+
+ explicit operator int() const { return static_cast<int>(code_); }
+
+ friend inline void PrintTo(const StatusCode& code, std::ostream* os) {
+ // TODO(b/321095377): Change this to print the status code as a string.
+ *os << static_cast<int>(code);
+ }
+
+ private:
+ ::absl::StatusCode code_;
+};
+
+// Relational operators to handle matchers like Eq, Lt, etc..
+inline bool operator==(const StatusCode& lhs, const StatusCode& rhs) {
+ return static_cast<int>(lhs) == static_cast<int>(rhs);
+}
+inline bool operator!=(const StatusCode& lhs, const StatusCode& rhs) {
+ return static_cast<int>(lhs) != static_cast<int>(rhs);
+}
+
+// StatusIs() is a polymorphic matcher. This class is the common
+// implementation of it shared by all types T where StatusIs() can be
+// used as a Matcher<T>.
+class StatusIsMatcherCommonImpl {
+ public:
+ StatusIsMatcherCommonImpl(
+ ::testing::Matcher<StatusCode> code_matcher,
+ ::testing::Matcher<absl::string_view> message_matcher)
+ : code_matcher_(std::move(code_matcher)),
+ message_matcher_(std::move(message_matcher)) {}
+
+ void DescribeTo(std::ostream* os) const;
+
+ void DescribeNegationTo(std::ostream* os) const;
+
+ bool MatchAndExplain(const absl::Status& status,
+ ::testing::MatchResultListener* result_listener) const;
+
+ private:
+ const ::testing::Matcher<StatusCode> code_matcher_;
+ const ::testing::Matcher<absl::string_view> message_matcher_;
+};
+
+// Monomorphic implementation of matcher StatusIs() for a given type
+// T. T can be Status, StatusOr<>, or a reference to either of them.
+template <typename T>
+class MonoStatusIsMatcherImpl : public ::testing::MatcherInterface<T> {
+ public:
+ explicit MonoStatusIsMatcherImpl(StatusIsMatcherCommonImpl common_impl)
+ : common_impl_(std::move(common_impl)) {}
+
+ void DescribeTo(std::ostream* os) const override {
+ common_impl_.DescribeTo(os);
+ }
+
+ void DescribeNegationTo(std::ostream* os) const override {
+ common_impl_.DescribeNegationTo(os);
+ }
+
+ bool MatchAndExplain(
+ T actual_value,
+ ::testing::MatchResultListener* result_listener) const override {
+ return common_impl_.MatchAndExplain(GetStatus(actual_value),
+ result_listener);
+ }
+
+ private:
+ StatusIsMatcherCommonImpl common_impl_;
+};
+
+// Implements StatusIs() as a polymorphic matcher.
+class StatusIsMatcher {
+ public:
+ template <typename StatusCodeMatcher, typename StatusMessageMatcher>
+ StatusIsMatcher(StatusCodeMatcher&& code_matcher,
+ StatusMessageMatcher&& message_matcher)
+ : common_impl_(::testing::MatcherCast<StatusCode>(
+ std::forward<StatusCodeMatcher>(code_matcher)),
+ ::testing::MatcherCast<absl::string_view>(
+ std::forward<StatusMessageMatcher>(message_matcher))) {
+ }
+
+ // Converts this polymorphic matcher to a monomorphic matcher of the
+ // given type. T can be StatusOr<>, Status, or a reference to
+ // either of them.
+ template <typename T>
+ /*implicit*/ operator ::testing::Matcher<T>() const { // NOLINT
+ return ::testing::Matcher<T>(
+ new MonoStatusIsMatcherImpl<const T&>(common_impl_));
+ }
+
+ private:
+ const StatusIsMatcherCommonImpl common_impl_;
+};
+
+// Monomorphic implementation of matcher IsOk() for a given type T.
+// T can be Status, StatusOr<>, or a reference to either of them.
+template <typename T>
+class MonoIsOkMatcherImpl : public ::testing::MatcherInterface<T> {
+ public:
+ void DescribeTo(std::ostream* os) const override { *os << "is OK"; }
+ void DescribeNegationTo(std::ostream* os) const override {
+ *os << "is not OK";
+ }
+ bool MatchAndExplain(T actual_value,
+ ::testing::MatchResultListener*) const override {
+ return GetStatus(actual_value).ok();
+ }
+};
+
+// Implements IsOk() as a polymorphic matcher.
+class IsOkMatcher {
+ public:
+ template <typename T>
+ /*implicit*/ operator ::testing::Matcher<T>() const { // NOLINT
+ return ::testing::Matcher<T>(new MonoIsOkMatcherImpl<const T&>());
+ }
+};
+
+} // namespace status_internal
+ABSL_NAMESPACE_END
+} // namespace absl_testing
+
+#endif // ABSL_STATUS_INTERNAL_STATUS_MATCHERS_H_
diff --git a/third_party/abseil-cpp/absl/status/status_matchers.h b/third_party/abseil-cpp/absl/status/status_matchers.h
new file mode 100644
index 0000000000..837660eb06
--- /dev/null
+++ b/third_party/abseil-cpp/absl/status/status_matchers.h
@@ -0,0 +1,118 @@
+// Copyright 2024 The Abseil Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// -----------------------------------------------------------------------------
+// File: status_matchers.h
+// -----------------------------------------------------------------------------
+//
+// Testing utilities for working with `absl::Status` and `absl::StatusOr`.
+//
+// Defines the following utilities:
+//
+// ===============
+// `IsOkAndHolds(m)`
+// ===============
+//
+// This gMock matcher matches a StatusOr<T> value whose status is OK
+// and whose inner value matches matcher m. Example:
+//
+// ```
+// using ::testing::MatchesRegex;
+// using ::absl_testing::IsOkAndHolds;
+// ...
+// absl::StatusOr<string> maybe_name = ...;
+// EXPECT_THAT(maybe_name, IsOkAndHolds(MatchesRegex("John .*")));
+// ```
+//
+// ===============================
+// `StatusIs(status_code_matcher)`
+// ===============================
+//
+// This is a shorthand for
+// `StatusIs(status_code_matcher, ::testing::_)`
+// In other words, it's like the two-argument `StatusIs()`, except that it
+// ignores error message.
+//
+// ===============
+// `IsOk()`
+// ===============
+//
+// Matches an `absl::Status` or `absl::StatusOr<T>` value whose status value
+// is `absl::StatusCode::kOk.`
+//
+// Equivalent to 'StatusIs(absl::StatusCode::kOk)'.
+// Example:
+// ```
+// using ::absl_testing::IsOk;
+// ...
+// absl::StatusOr<string> maybe_name = ...;
+// EXPECT_THAT(maybe_name, IsOk());
+// Status s = ...;
+// EXPECT_THAT(s, IsOk());
+// ```
+
+#ifndef ABSL_STATUS_STATUS_MATCHERS_H_
+#define ABSL_STATUS_STATUS_MATCHERS_H_
+
+#include <ostream> // NOLINT
+#include <type_traits>
+#include <utility>
+
+#include "gmock/gmock.h" // gmock_for_status_matchers.h
+#include "absl/base/config.h"
+#include "absl/status/internal/status_matchers.h"
+
+namespace absl_testing {
+ABSL_NAMESPACE_BEGIN
+
+// Returns a gMock matcher that matches a StatusOr<> whose status is
+// OK and whose value matches the inner matcher.
+template <typename InnerMatcherT>
+status_internal::IsOkAndHoldsMatcher<typename std::decay<InnerMatcherT>::type>
+IsOkAndHolds(InnerMatcherT&& inner_matcher) {
+ return status_internal::IsOkAndHoldsMatcher<
+ typename std::decay<InnerMatcherT>::type>(
+ std::forward<InnerMatcherT>(inner_matcher));
+}
+
+// Returns a gMock matcher that matches a Status or StatusOr<> whose status code
+// matches code_matcher and whose error message matches message_matcher.
+// Typically, code_matcher will be an absl::StatusCode, e.g.
+//
+// StatusIs(absl::StatusCode::kInvalidArgument, "...")
+template <typename StatusCodeMatcherT, typename StatusMessageMatcherT>
+status_internal::StatusIsMatcher StatusIs(
+ StatusCodeMatcherT&& code_matcher,
+ StatusMessageMatcherT&& message_matcher) {
+ return status_internal::StatusIsMatcher(
+ std::forward<StatusCodeMatcherT>(code_matcher),
+ std::forward<StatusMessageMatcherT>(message_matcher));
+}
+
+// Returns a gMock matcher that matches a Status or StatusOr<> and whose status
+// code matches code_matcher. See above for details.
+template <typename StatusCodeMatcherT>
+status_internal::StatusIsMatcher StatusIs(StatusCodeMatcherT&& code_matcher) {
+ return StatusIs(std::forward<StatusCodeMatcherT>(code_matcher), ::testing::_);
+}
+
+// Returns a gMock matcher that matches a Status or StatusOr<> which is OK.
+inline status_internal::IsOkMatcher IsOk() {
+ return status_internal::IsOkMatcher();
+}
+
+ABSL_NAMESPACE_END
+} // namespace absl_testing
+
+#endif // ABSL_STATUS_STATUS_MATCHERS_H_
diff --git a/third_party/abseil-cpp/absl/status/status_matchers_test.cc b/third_party/abseil-cpp/absl/status/status_matchers_test.cc
new file mode 100644
index 0000000000..3af03053fa
--- /dev/null
+++ b/third_party/abseil-cpp/absl/status/status_matchers_test.cc
@@ -0,0 +1,119 @@
+// Copyright 2024 The Abseil Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// -----------------------------------------------------------------------------
+// File: status_matchers_test.cc
+// -----------------------------------------------------------------------------
+#include "absl/status/status_matchers.h"
+
+#include "gmock/gmock.h"
+#include "gtest/gtest-spi.h"
+#include "gtest/gtest.h"
+#include "absl/status/status.h"
+#include "absl/status/statusor.h"
+#include "absl/strings/string_view.h"
+
+namespace {
+
+using ::absl_testing::IsOk;
+using ::absl_testing::IsOkAndHolds;
+using ::absl_testing::StatusIs;
+using ::testing::Gt;
+
+TEST(StatusMatcherTest, StatusIsOk) { EXPECT_THAT(absl::OkStatus(), IsOk()); }
+
+TEST(StatusMatcherTest, StatusOrIsOk) {
+ absl::StatusOr<int> ok_int = {0};
+ EXPECT_THAT(ok_int, IsOk());
+}
+
+TEST(StatusMatcherTest, StatusIsNotOk) {
+ absl::Status error = absl::UnknownError("Smigla");
+ EXPECT_NONFATAL_FAILURE(EXPECT_THAT(error, IsOk()), "Smigla");
+}
+
+TEST(StatusMatcherTest, StatusOrIsNotOk) {
+ absl::StatusOr<int> error = absl::UnknownError("Smigla");
+ EXPECT_NONFATAL_FAILURE(EXPECT_THAT(error, IsOk()), "Smigla");
+}
+
+TEST(StatusMatcherTest, IsOkAndHolds) {
+ absl::StatusOr<int> ok_int = {4};
+ absl::StatusOr<absl::string_view> ok_str = {"text"};
+ EXPECT_THAT(ok_int, IsOkAndHolds(4));
+ EXPECT_THAT(ok_int, IsOkAndHolds(Gt(0)));
+ EXPECT_THAT(ok_str, IsOkAndHolds("text"));
+}
+
+TEST(StatusMatcherTest, IsOkAndHoldsFailure) {
+ absl::StatusOr<int> ok_int = {502};
+ absl::StatusOr<int> error = absl::UnknownError("Smigla");
+ absl::StatusOr<absl::string_view> ok_str = {"actual"};
+ EXPECT_NONFATAL_FAILURE(EXPECT_THAT(ok_int, IsOkAndHolds(0)), "502");
+ EXPECT_NONFATAL_FAILURE(EXPECT_THAT(error, IsOkAndHolds(0)), "Smigla");
+ EXPECT_NONFATAL_FAILURE(EXPECT_THAT(ok_str, IsOkAndHolds("expected")),
+ "actual");
+}
+
+TEST(StatusMatcherTest, StatusIs) {
+ absl::Status unknown = absl::UnknownError("unbekannt");
+ absl::Status invalid = absl::InvalidArgumentError("ungueltig");
+ EXPECT_THAT(absl::OkStatus(), StatusIs(absl::StatusCode::kOk));
+ EXPECT_THAT(absl::OkStatus(), StatusIs(0));
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kUnknown));
+ EXPECT_THAT(unknown, StatusIs(2));
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kUnknown, "unbekannt"));
+ EXPECT_THAT(invalid, StatusIs(absl::StatusCode::kInvalidArgument));
+ EXPECT_THAT(invalid, StatusIs(3));
+ EXPECT_THAT(invalid,
+ StatusIs(absl::StatusCode::kInvalidArgument, "ungueltig"));
+}
+
+TEST(StatusMatcherTest, StatusOrIs) {
+ absl::StatusOr<int> ok = {42};
+ absl::StatusOr<int> unknown = absl::UnknownError("unbekannt");
+ absl::StatusOr<absl::string_view> invalid =
+ absl::InvalidArgumentError("ungueltig");
+ EXPECT_THAT(ok, StatusIs(absl::StatusCode::kOk));
+ EXPECT_THAT(ok, StatusIs(0));
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kUnknown));
+ EXPECT_THAT(unknown, StatusIs(2));
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kUnknown, "unbekannt"));
+ EXPECT_THAT(invalid, StatusIs(absl::StatusCode::kInvalidArgument));
+ EXPECT_THAT(invalid, StatusIs(3));
+ EXPECT_THAT(invalid,
+ StatusIs(absl::StatusCode::kInvalidArgument, "ungueltig"));
+}
+
+TEST(StatusMatcherTest, StatusIsFailure) {
+ absl::Status unknown = absl::UnknownError("unbekannt");
+ absl::Status invalid = absl::InvalidArgumentError("ungueltig");
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_THAT(absl::OkStatus(),
+ StatusIs(absl::StatusCode::kInvalidArgument)),
+ "OK");
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kCancelled)), "UNKNOWN");
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_THAT(unknown, StatusIs(absl::StatusCode::kUnknown, "inconnu")),
+ "unbekannt");
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_THAT(invalid, StatusIs(absl::StatusCode::kOutOfRange)), "INVALID");
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_THAT(invalid,
+ StatusIs(absl::StatusCode::kInvalidArgument, "invalide")),
+ "ungueltig");
+}
+
+} // namespace
diff --git a/third_party/abseil-cpp/absl/status/statusor_test.cc b/third_party/abseil-cpp/absl/status/statusor_test.cc
index 09ffc65889..8341040448 100644
--- a/third_party/abseil-cpp/absl/status/statusor_test.cc
+++ b/third_party/abseil-cpp/absl/status/statusor_test.cc
@@ -31,6 +31,7 @@
#include "absl/base/casts.h"
#include "absl/memory/memory.h"
#include "absl/status/status.h"
+#include "absl/status/status_matchers.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "absl/types/any.h"
@@ -39,6 +40,8 @@
namespace {
+using ::absl_testing::IsOk;
+using ::absl_testing::IsOkAndHolds;
using ::testing::AllOf;
using ::testing::AnyOf;
using ::testing::AnyWith;
@@ -52,128 +55,6 @@ using ::testing::Pointee;
using ::testing::StartsWith;
using ::testing::VariantWith;
-#ifdef GTEST_HAS_STATUS_MATCHERS
-using ::testing::status::IsOk;
-using ::testing::status::IsOkAndHolds;
-#else // GTEST_HAS_STATUS_MATCHERS
-inline const ::absl::Status& GetStatus(const ::absl::Status& status) {
- return status;
-}
-
-template <typename T>
-inline const ::absl::Status& GetStatus(const ::absl::StatusOr<T>& status) {
- return status.status();
-}
-
-// Monomorphic implementation of matcher IsOkAndHolds(m). StatusOrType is a
-// reference to StatusOr<T>.
-template <typename StatusOrType>
-class IsOkAndHoldsMatcherImpl
- : public ::testing::MatcherInterface<StatusOrType> {
- public:
- typedef
- typename std::remove_reference<StatusOrType>::type::value_type value_type;
-
- template <typename InnerMatcher>
- explicit IsOkAndHoldsMatcherImpl(InnerMatcher&& inner_matcher)
- : inner_matcher_(::testing::SafeMatcherCast<const value_type&>(
- std::forward<InnerMatcher>(inner_matcher))) {}
-
- void DescribeTo(std::ostream* os) const override {
- *os << "is OK and has a value that ";
- inner_matcher_.DescribeTo(os);
- }
-
- void DescribeNegationTo(std::ostream* os) const override {
- *os << "isn't OK or has a value that ";
- inner_matcher_.DescribeNegationTo(os);
- }
-
- bool MatchAndExplain(
- StatusOrType actual_value,
- ::testing::MatchResultListener* result_listener) const override {
- if (!actual_value.ok()) {
- *result_listener << "which has status " << actual_value.status();
- return false;
- }
-
- ::testing::StringMatchResultListener inner_listener;
- const bool matches =
- inner_matcher_.MatchAndExplain(*actual_value, &inner_listener);
- const std::string inner_explanation = inner_listener.str();
- if (!inner_explanation.empty()) {
- *result_listener << "which contains value "
- << ::testing::PrintToString(*actual_value) << ", "
- << inner_explanation;
- }
- return matches;
- }
-
- private:
- const ::testing::Matcher<const value_type&> inner_matcher_;
-};
-
-// Implements IsOkAndHolds(m) as a polymorphic matcher.
-template <typename InnerMatcher>
-class IsOkAndHoldsMatcher {
- public:
- explicit IsOkAndHoldsMatcher(InnerMatcher inner_matcher)
- : inner_matcher_(std::move(inner_matcher)) {}
-
- // Converts this polymorphic matcher to a monomorphic matcher of the
- // given type. StatusOrType can be either StatusOr<T> or a
- // reference to StatusOr<T>.
- template <typename StatusOrType>
- operator ::testing::Matcher<StatusOrType>() const { // NOLINT
- return ::testing::Matcher<StatusOrType>(
- new IsOkAndHoldsMatcherImpl<const StatusOrType&>(inner_matcher_));
- }
-
- private:
- const InnerMatcher inner_matcher_;
-};
-
-// Monomorphic implementation of matcher IsOk() for a given type T.
-// T can be Status, StatusOr<>, or a reference to either of them.
-template <typename T>
-class MonoIsOkMatcherImpl : public ::testing::MatcherInterface<T> {
- public:
- void DescribeTo(std::ostream* os) const override { *os << "is OK"; }
- void DescribeNegationTo(std::ostream* os) const override {
- *os << "is not OK";
- }
- bool MatchAndExplain(T actual_value,
- ::testing::MatchResultListener*) const override {
- return GetStatus(actual_value).ok();
- }
-};
-
-// Implements IsOk() as a polymorphic matcher.
-class IsOkMatcher {
- public:
- template <typename T>
- operator ::testing::Matcher<T>() const { // NOLINT
- return ::testing::Matcher<T>(new MonoIsOkMatcherImpl<T>());
- }
-};
-
-// Macros for testing the results of functions that return absl::Status or
-// absl::StatusOr<T> (for any type T).
-#define EXPECT_OK(expression) EXPECT_THAT(expression, IsOk())
-
-// Returns a gMock matcher that matches a StatusOr<> whose status is
-// OK and whose value matches the inner matcher.
-template <typename InnerMatcher>
-IsOkAndHoldsMatcher<typename std::decay<InnerMatcher>::type> IsOkAndHolds(
- InnerMatcher&& inner_matcher) {
- return IsOkAndHoldsMatcher<typename std::decay<InnerMatcher>::type>(
- std::forward<InnerMatcher>(inner_matcher));
-}
-
-// Returns a gMock matcher that matches a Status or StatusOr<> which is OK.
-inline IsOkMatcher IsOk() { return IsOkMatcher(); }
-#endif // GTEST_HAS_STATUS_MATCHERS
-
struct CopyDetector {
CopyDetector() = default;
explicit CopyDetector(int xx) : x(xx) {}
@@ -527,7 +408,7 @@ TEST(StatusOr, TestCopyCtorStatusOk) {
const int kI = 4;
const absl::StatusOr<int> original(kI);
const absl::StatusOr<int> copy(original);
- EXPECT_OK(copy.status());
+ EXPECT_THAT(copy.status(), IsOk());
EXPECT_EQ(*original, *copy);
}
@@ -542,7 +423,7 @@ TEST(StatusOr, TestCopyCtorNonAssignable) {
CopyNoAssign value(kI);
absl::StatusOr<CopyNoAssign> original(value);
absl::StatusOr<CopyNoAssign> copy(original);
- EXPECT_OK(copy.status());
+ EXPECT_THAT(copy.status(), IsOk());
EXPECT_EQ(original->foo, copy->foo);
}
@@ -550,7 +431,7 @@ TEST(StatusOr, TestCopyCtorStatusOKConverting) {
const int kI = 4;
absl::StatusOr<int> original(kI);
absl::StatusOr<double> copy(original);
- EXPECT_OK(copy.status());
+ EXPECT_THAT(copy.status(), IsOk());
EXPECT_DOUBLE_EQ(*original, *copy);
}
@@ -570,11 +451,11 @@ TEST(StatusOr, TestAssignmentStatusOk) {
target = source;
ASSERT_TRUE(target.ok());
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_EQ(p, *target);
ASSERT_TRUE(source.ok());
- EXPECT_OK(source.status());
+ EXPECT_THAT(source.status(), IsOk());
EXPECT_EQ(p, *source);
}
@@ -587,11 +468,11 @@ TEST(StatusOr, TestAssignmentStatusOk) {
target = std::move(source);
ASSERT_TRUE(target.ok());
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_EQ(p, *target);
ASSERT_TRUE(source.ok());
- EXPECT_OK(source.status());
+ EXPECT_THAT(source.status(), IsOk());
EXPECT_EQ(nullptr, *source);
}
}
@@ -638,11 +519,11 @@ TEST(StatusOr, TestAssignmentStatusOKConverting) {
target = source;
ASSERT_TRUE(target.ok());
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_DOUBLE_EQ(kI, *target);
ASSERT_TRUE(source.ok());
- EXPECT_OK(source.status());
+ EXPECT_THAT(source.status(), IsOk());
EXPECT_DOUBLE_EQ(kI, *source);
}
@@ -655,11 +536,11 @@ TEST(StatusOr, TestAssignmentStatusOKConverting) {
target = std::move(source);
ASSERT_TRUE(target.ok());
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_EQ(p, target->get());
ASSERT_TRUE(source.ok());
- EXPECT_OK(source.status());
+ EXPECT_THAT(source.status(), IsOk());
EXPECT_EQ(nullptr, source->get());
}
}
@@ -1078,7 +959,7 @@ TEST(StatusOr, SelfAssignment) {
so = *&so;
ASSERT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(long_str, *so);
}
@@ -1101,7 +982,7 @@ TEST(StatusOr, SelfAssignment) {
so = std::move(same);
ASSERT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(17, *so);
}
@@ -1128,7 +1009,7 @@ TEST(StatusOr, SelfAssignment) {
so = std::move(same);
ASSERT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(raw, so->get());
}
@@ -1361,7 +1242,7 @@ TEST(StatusOr, TestPointerValueCtor) {
{
absl::StatusOr<const int*> so(&kI);
EXPECT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(&kI, *so);
}
@@ -1369,7 +1250,7 @@ TEST(StatusOr, TestPointerValueCtor) {
{
absl::StatusOr<const int*> so(nullptr);
EXPECT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(nullptr, *so);
}
@@ -1379,7 +1260,7 @@ TEST(StatusOr, TestPointerValueCtor) {
absl::StatusOr<const int*> so(p);
EXPECT_TRUE(so.ok());
- EXPECT_OK(so.status());
+ EXPECT_THAT(so.status(), IsOk());
EXPECT_EQ(nullptr, *so);
}
}
@@ -1388,7 +1269,7 @@ TEST(StatusOr, TestPointerCopyCtorStatusOk) {
const int kI = 0;
absl::StatusOr<const int*> original(&kI);
absl::StatusOr<const int*> copy(original);
- EXPECT_OK(copy.status());
+ EXPECT_THAT(copy.status(), IsOk());
EXPECT_EQ(*original, *copy);
}
@@ -1402,7 +1283,7 @@ TEST(StatusOr, TestPointerCopyCtorStatusOKConverting) {
Derived derived;
absl::StatusOr<Derived*> original(&derived);
absl::StatusOr<Base2*> copy(original);
- EXPECT_OK(copy.status());
+ EXPECT_THAT(copy.status(), IsOk());
EXPECT_EQ(static_cast<const Base2*>(*original), *copy);
}
@@ -1417,7 +1298,7 @@ TEST(StatusOr, TestPointerAssignmentStatusOk) {
absl::StatusOr<const int*> source(&kI);
absl::StatusOr<const int*> target;
target = source;
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_EQ(*source, *target);
}
@@ -1433,7 +1314,7 @@ TEST(StatusOr, TestPointerAssignmentStatusOKConverting) {
absl::StatusOr<Derived*> source(&derived);
absl::StatusOr<Base2*> target;
target = source;
- EXPECT_OK(target.status());
+ EXPECT_THAT(target.status(), IsOk());
EXPECT_EQ(static_cast<const Base2*>(*source), *target);
}
diff --git a/third_party/abseil-cpp/absl/strings/cord_test.cc b/third_party/abseil-cpp/absl/strings/cord_test.cc
index ad96aafa5d..c4a7288afd 100644
--- a/third_party/abseil-cpp/absl/strings/cord_test.cc
+++ b/third_party/abseil-cpp/absl/strings/cord_test.cc
@@ -243,12 +243,14 @@ class CordTestPeer {
ABSL_NAMESPACE_END
} // namespace absl
-// The CordTest fixture runs all tests with and without Cord Btree enabled,
-// and with our without expected CRCs being set on the subject Cords.
-class CordTest : public testing::TestWithParam<int> {
+
+
+// The CordTest fixture runs all tests with and without expected CRCs being set
+// on the subject Cords.
+class CordTest : public testing::TestWithParam<bool /*useCrc*/> {
public:
- // Returns true if test is running with btree enabled.
- bool UseCrc() const { return GetParam() == 2 || GetParam() == 3; }
+ // Returns true if test is running with Crc enabled.
+ bool UseCrc() const { return GetParam(); }
void MaybeHarden(absl::Cord& c) {
if (UseCrc()) {
c.SetExpectedChecksum(1);
@@ -260,20 +262,16 @@ class CordTest : public testing::TestWithParam<int> {
}
// Returns human readable string representation of the test parameter.
- static std::string ToString(testing::TestParamInfo<int> param) {
- switch (param.param) {
- case 0:
- return "Btree";
- case 1:
- return "BtreeHardened";
- default:
- assert(false);
- return "???";
+ static std::string ToString(testing::TestParamInfo<bool> useCrc) {
+ if (useCrc.param) {
+ return "BtreeHardened";
+ } else {
+ return "Btree";
}
}
};
-INSTANTIATE_TEST_SUITE_P(WithParam, CordTest, testing::Values(0, 1),
+INSTANTIATE_TEST_SUITE_P(WithParam, CordTest, testing::Bool(),
CordTest::ToString);
TEST(CordRepFlat, AllFlatCapacities) {
diff --git a/third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc b/third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc
index 17c3607d7c..3a4c27d78b 100644
--- a/third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc
+++ b/third_party/abseil-cpp/absl/strings/internal/str_format/convert_test.cc
@@ -785,7 +785,7 @@ TEST_F(FormatConvertTest, Uint128) {
}
template <typename Floating>
-void TestWithMultipleFormatsHelper(const std::vector<Floating> &floats) {
+void TestWithMultipleFormatsHelper(Floating tested_float) {
const NativePrintfTraits &native_traits = VerifyNativeImplementation();
// Reserve the space to ensure we don't allocate memory in the output itself.
std::string str_format_result;
@@ -816,17 +816,17 @@ void TestWithMultipleFormatsHelper(const std::vector<Floating> &floats) {
continue;
}
- for (Floating d : floats) {
- if (!native_traits.hex_float_prefers_denormal_repr &&
- (f == 'a' || f == 'A') && std::fpclassify(d) == FP_SUBNORMAL) {
- continue;
- }
+ if (!native_traits.hex_float_prefers_denormal_repr &&
+ (f == 'a' || f == 'A') &&
+ std::fpclassify(tested_float) == FP_SUBNORMAL) {
+ continue;
+ }
int i = -10;
- FormatArgImpl args[2] = {FormatArgImpl(d), FormatArgImpl(i)};
+ FormatArgImpl args[2] = {FormatArgImpl(tested_float), FormatArgImpl(i)};
UntypedFormatSpecImpl format(fmt_str);
string_printf_result.clear();
- StrAppend(&string_printf_result, fmt_str.c_str(), d, i);
+ StrAppend(&string_printf_result, fmt_str.c_str(), tested_float, i);
str_format_result.clear();
{
@@ -842,17 +842,17 @@ void TestWithMultipleFormatsHelper(const std::vector<Floating> &floats) {
continue;
#elif defined(__APPLE__)
// Apple formats NaN differently (+nan) vs. (nan)
- if (std::isnan(d)) continue;
+ if (std::isnan(tested_float)) continue;
#endif
if (string_printf_result != str_format_result) {
// We use ASSERT_EQ here because failures are usually correlated and a
// bug would print way too many failed expectations causing the test
// to time out.
ASSERT_EQ(string_printf_result, str_format_result)
- << fmt_str << " " << StrPrint("%.18g", d) << " "
- << StrPrint("%a", d) << " " << StrPrint("%.50f", d);
+ << fmt_str << " " << StrPrint("%.18g", tested_float) << " "
+ << StrPrint("%a", tested_float) << " "
+ << StrPrint("%.50f", tested_float);
}
- }
}
}
}
@@ -905,7 +905,9 @@ TEST_F(FormatConvertTest, Float) {
});
floats.erase(std::unique(floats.begin(), floats.end()), floats.end());
- TestWithMultipleFormatsHelper(floats);
+ for (float f : floats) {
+ TestWithMultipleFormatsHelper(f);
+ }
}
TEST_F(FormatConvertTest, Double) {
@@ -956,7 +958,9 @@ TEST_F(FormatConvertTest, Double) {
});
doubles.erase(std::unique(doubles.begin(), doubles.end()), doubles.end());
- TestWithMultipleFormatsHelper(doubles);
+ for (double d : doubles) {
+ TestWithMultipleFormatsHelper(d);
+ }
}
TEST_F(FormatConvertTest, DoubleRound) {
diff --git a/third_party/abseil-cpp/absl/strings/str_format.h b/third_party/abseil-cpp/absl/strings/str_format.h
index 66b6af5854..76904d3228 100644
--- a/third_party/abseil-cpp/absl/strings/str_format.h
+++ b/third_party/abseil-cpp/absl/strings/str_format.h
@@ -181,7 +181,7 @@ class FormatCountCapture {
// For a `FormatSpec` to be valid at compile-time, it must be provided as
// either:
//
-// * A `constexpr` literal or `absl::string_view`, which is how it most often
+// * A `constexpr` literal or `absl::string_view`, which is how it is most often
// used.
// * A `ParsedFormat` instantiation, which ensures the format string is
// valid before use. (See below.)
diff --git a/third_party/abseil-cpp/symbols_arm64_dbg.def b/third_party/abseil-cpp/symbols_arm64_dbg.def
index 5a02fa6002..830336dd59 100644
--- a/third_party/abseil-cpp/symbols_arm64_dbg.def
+++ b/third_party/abseil-cpp/symbols_arm64_dbg.def
@@ -2991,6 +2991,7 @@ EXPORTS
?Delete@flags_internal@absl@@YAXP6APEAXW4FlagOp@12@PEBXPEAX2@Z2@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPEAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PEBD@Z
?Description@Impl@time_zone@cctz@time_internal@absl@@QEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneInfo@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_arm64_rel.def b/third_party/abseil-cpp/symbols_arm64_rel.def
index fffdca4005..ad9f475041 100644
--- a/third_party/abseil-cpp/symbols_arm64_rel.def
+++ b/third_party/abseil-cpp/symbols_arm64_rel.def
@@ -488,6 +488,7 @@ EXPORTS
?Delete@CordzHandle@cord_internal@absl@@SAXPEAV123@@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPEAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PEBD@Z
?Description@TimeZoneInfo@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneLibC@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_x64_dbg.def b/third_party/abseil-cpp/symbols_x64_dbg.def
index 0c4cfe5916..c2e579f257 100644
--- a/third_party/abseil-cpp/symbols_x64_dbg.def
+++ b/third_party/abseil-cpp/symbols_x64_dbg.def
@@ -2990,6 +2990,7 @@ EXPORTS
?Delete@flags_internal@absl@@YAXP6APEAXW4FlagOp@12@PEBXPEAX2@Z2@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPEAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PEBD@Z
?Description@Impl@time_zone@cctz@time_internal@absl@@QEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneInfo@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_x64_rel.def b/third_party/abseil-cpp/symbols_x64_rel.def
index 724814dac2..323c843259 100644
--- a/third_party/abseil-cpp/symbols_x64_rel.def
+++ b/third_party/abseil-cpp/symbols_x64_rel.def
@@ -489,6 +489,7 @@ EXPORTS
?Delete@CordzHandle@cord_internal@absl@@SAXPEAV123@@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPEAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PEBD@Z
?Description@TimeZoneInfo@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneLibC@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_x64_rel_asan.def b/third_party/abseil-cpp/symbols_x64_rel_asan.def
index ba6c3f8f2b..109148b01a 100644
--- a/third_party/abseil-cpp/symbols_x64_rel_asan.def
+++ b/third_party/abseil-cpp/symbols_x64_rel_asan.def
@@ -526,6 +526,7 @@ EXPORTS
?Delete@CordzHandle@cord_internal@absl@@SAXPEAV123@@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPEAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPEBDPEAD_K@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PEBD@Z
?Description@TimeZoneInfo@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneLibC@cctz@time_internal@absl@@UEBA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_x86_dbg.def b/third_party/abseil-cpp/symbols_x86_dbg.def
index 7f58192d42..1bb29a88d7 100644
--- a/third_party/abseil-cpp/symbols_x86_dbg.def
+++ b/third_party/abseil-cpp/symbols_x86_dbg.def
@@ -2990,6 +2990,7 @@ EXPORTS
?Delete@flags_internal@absl@@YAXP6APAXW4FlagOp@12@PBXPAX2@Z2@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPBDPADI@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPBDPADI@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PBD@Z
?Description@Impl@time_zone@cctz@time_internal@absl@@QBE?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneInfo@cctz@time_internal@absl@@UBE?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/abseil-cpp/symbols_x86_rel.def b/third_party/abseil-cpp/symbols_x86_rel.def
index d924074a18..d2636d839b 100644
--- a/third_party/abseil-cpp/symbols_x86_rel.def
+++ b/third_party/abseil-cpp/symbols_x86_rel.def
@@ -494,6 +494,7 @@ EXPORTS
?Delete@CordzHandle@cord_internal@absl@@SAXPAV123@@Z
?DeleteArena@LowLevelAlloc@base_internal@absl@@SA_NPAUArena@123@@Z
?Demangle@debugging_internal@absl@@YA_NPBDPADI@Z
+ ?DemangleRustSymbolEncoding@debugging_internal@absl@@YA_NPBDPADI@Z
?DemangleString@debugging_internal@absl@@YA?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@PBD@Z
?Description@TimeZoneInfo@cctz@time_internal@absl@@UBE?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
?Description@TimeZoneLibC@cctz@time_internal@absl@@UBE?AV?$basic_string@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@XZ
diff --git a/third_party/flatbuffers/DIR_METADATA b/third_party/flatbuffers/DIR_METADATA
index 637eb4dc77..f34553f340 100644
--- a/third_party/flatbuffers/DIR_METADATA
+++ b/third_party/flatbuffers/DIR_METADATA
@@ -1,3 +1,6 @@
-monorail {
+monorail: {
component: "Platform>Extensions>API"
}
+buganizer_public: {
+ component_id: 1456781
+}
diff --git a/third_party/flatbuffers/README.chromium b/third_party/flatbuffers/README.chromium
index b45064f841..47669af672 100644
--- a/third_party/flatbuffers/README.chromium
+++ b/third_party/flatbuffers/README.chromium
@@ -1,8 +1,8 @@
Name: FlatBuffers
Short Name: flatbuffers
URL: https://github.com/google/flatbuffers
-Version: bcb9ef187628fe07514e57756d05e6a6296f7dc5
-Date: 2023-10-03
+Version: c696275eaffec33796b5ca8755614fd9fec0a6a7
+Date: 2024-05-09
License: Apache 2.0
License File: LICENSE
Security Critical: yes
diff --git a/third_party/flatbuffers/generated/tests/alignment_test_generated.h b/third_party/flatbuffers/generated/tests/alignment_test_generated.h
index a23479e2c6..e123300e28 100644
--- a/third_party/flatbuffers/generated/tests/alignment_test_generated.h
+++ b/third_party/flatbuffers/generated/tests/alignment_test_generated.h
@@ -7,8 +7,8 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 &&
- FLATBUFFERS_VERSION_REVISION == 26,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 24 && FLATBUFFERS_VERSION_MINOR == 3 &&
+ FLATBUFFERS_VERSION_REVISION == 25,
"Non-compatible flatbuffers version included");
struct BadAlignmentSmall;
diff --git a/third_party/flatbuffers/generated/tests/arrays_test_generated.h b/third_party/flatbuffers/generated/tests/arrays_test_generated.h
index 45e5f2475a..f2264df536 100644
--- a/third_party/flatbuffers/generated/tests/arrays_test_generated.h
+++ b/third_party/flatbuffers/generated/tests/arrays_test_generated.h
@@ -7,8 +7,8 @@
// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
-static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 &&
- FLATBUFFERS_VERSION_REVISION == 26,
+static_assert(FLATBUFFERS_VERSION_MAJOR == 24 && FLATBUFFERS_VERSION_MINOR == 3 &&
+ FLATBUFFERS_VERSION_REVISION == 25,
"Non-compatible flatbuffers version included");
namespace MyGame
diff --git a/third_party/r8/lib/r8.jar b/third_party/r8/lib/r8.jar
index 0d8798e815..dce493f2cf 100644
--- a/third_party/r8/lib/r8.jar
+++ b/third_party/r8/lib/r8.jar
Binary files differ
diff --git a/third_party/vulkan-deps/DEPS b/third_party/vulkan-deps/DEPS
index cb01befb49..16606d8703 100644
--- a/third_party/vulkan-deps/DEPS
+++ b/third_party/vulkan-deps/DEPS
@@ -10,31 +10,31 @@ vars = {
'chromium_git': 'https://chromium.googlesource.com',
# Current revision of glslang, the Khronos SPIRV compiler.
- 'glslang_revision': 'f857417c991d178e90670385e31fee6d30394076',
+ 'glslang_revision': 'edca09e3af5ed5f65042577315cdc5a61d36b7e2',
# Current revision of spirv-cross, the Khronos SPIRV cross compiler.
'spirv_cross_revision': 'b8fcf307f1f347089e3c46eb4451d27f32ebc8d3',
# Current revision fo the SPIRV-Headers Vulkan support library.
- 'spirv_headers_revision': '5e3ad389ee56fca27c9705d093ae5387ce404df4',
+ 'spirv_headers_revision': '49a1fceb9b1d087f3c25ad5ec077bb0e46231297',
# Current revision of SPIRV-Tools for Vulkan.
- 'spirv_tools_revision': 'dd4b663e13c07fea4fbb3f70c1c91c86731099f7',
+ 'spirv_tools_revision': '199038f10cbe56bf7cbfeb5472eb0a25af2f09f5',
# Current revision of Khronos Vulkan-Headers.
- 'vulkan_headers_revision': 'eaa319dade959cb61ed2229c8ea42e307cc8f8b3',
+ 'vulkan_headers_revision': '5677bafb820e476441e9e1f745371b72133407d3',
# Current revision of Khronos Vulkan-Loader.
- 'vulkan_loader_revision': 'fa3b7bdefadef01ee9af593245c47ca1a33212f4',
+ 'vulkan_loader_revision': 'eb8c7b071a449be3d1331e0961c8fdd0a78efca9',
# Current revision of Khronos Vulkan-Tools.
- 'vulkan_tools_revision': 'd21838aeaafbeb57cbed3a8072e26b7b15cc533e',
+ 'vulkan_tools_revision': 'df8e710224f563a04b7db2680f72d31619c4b259',
# Current revision of Khronos Vulkan-Utility-Libraries.
- 'vulkan_utility_libraries_revision': '68780d9b8c4dd256e55a3df60969970cb29911ce',
+ 'vulkan_utility_libraries_revision': '358a107a6ff284906dcccbabe5b0183c03fd85b6',
# Current revision of Khronos Vulkan-ValidationLayers.
- 'vulkan_validation_revision': '397d8fbc0ed892e470d24208c199a014b7d5fabe',
+ 'vulkan_validation_revision': '8480f26d3f79f57fc7c204aad8969c5c874fb1c3',
}
deps = {
diff --git a/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_deployment.yml b/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_deployment.yml
index c58a1d8fb8..4f8b06d887 100644
--- a/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_deployment.yml
+++ b/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_deployment.yml
@@ -41,7 +41,7 @@ jobs:
compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
@@ -105,7 +105,7 @@ jobs:
compiler: [{cc: clang, cxx: clang++}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
@@ -162,7 +162,7 @@ jobs:
os: [{genus: windows-2019, family: windows}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
diff --git a/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_integration.yml b/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_integration.yml
index 4d30698857..ab944dc55f 100644
--- a/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_integration.yml
+++ b/third_party/vulkan-deps/glslang/src/.github/workflows/continuous_integration.yml
@@ -17,7 +17,7 @@ jobs:
compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
@@ -53,7 +53,7 @@ jobs:
cmake_build_type: [Debug]
flags: ['-fsanitize=address', '-fsanitize=thread']
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
@@ -91,7 +91,7 @@ jobs:
name: Linux Backcompat
runs-on: ubuntu-20.04
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.7'
@@ -126,7 +126,7 @@ jobs:
compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- run: ./update_glslang_sources.py
- run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -G Ninja -DBUILD_WERROR=ON -D GLSLANG_TESTS=ON
@@ -150,7 +150,7 @@ jobs:
os: [{genus: windows-2019, family: windows}]
cmake_build_type: [Debug, Release]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
@@ -168,7 +168,7 @@ jobs:
iOS:
runs-on: macos-13
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- name: Setup ccache
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
@@ -197,7 +197,7 @@ jobs:
# Test both to ensure we are compatible with either approach.
LEGACY: [ON, OFF]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- name: Setup ccache
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13
@@ -220,7 +220,7 @@ jobs:
emscripten:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.7'
diff --git a/third_party/vulkan-deps/glslang/src/.github/workflows/scorecard.yml b/third_party/vulkan-deps/glslang/src/.github/workflows/scorecard.yml
index 0560839b17..efda65dbbc 100644
--- a/third_party/vulkan-deps/glslang/src/.github/workflows/scorecard.yml
+++ b/third_party/vulkan-deps/glslang/src/.github/workflows/scorecard.yml
@@ -23,7 +23,7 @@ jobs:
steps:
- name: "Checkout code"
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
persist-credentials: false
diff --git a/third_party/vulkan-deps/glslang/src/CHANGES.md b/third_party/vulkan-deps/glslang/src/CHANGES.md
index 74854d8710..13fa155632 100644
--- a/third_party/vulkan-deps/glslang/src/CHANGES.md
+++ b/third_party/vulkan-deps/glslang/src/CHANGES.md
@@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/).
+## 14.2.0 2024-05-02
+* Improve checking for location aliasing errors
+* Fix undefined behavior in parser
+* Add bounds check to gl_SampleMask
+* Fix alignment and padding of matrices consuming one vector
+* Remove duplicate SPIR-V decorations
+* Check for exponent overflow in float parser
+* Fix bug in relaxed verification rules
+* Fix disassembly of debugBreak
+* Fix bug when importing SPIR-V extended intruction set
+* Fix issues with the interaction of cooperative_matrix and spirv_intrinsics
+* Support SPV_QCOM_image_processing2
+* Support files with UTF8BOM character
+
## 14.1.0 2024-03-08
* Add a new --abosute-path command-line option to output absolute paths in error messages
* Support GL_EXT_control_flow_attributes2
diff --git a/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSAD.frag.out b/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSAD.frag.out
index ff102565c8..cd20d771a0 100644
--- a/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSAD.frag.out
+++ b/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSAD.frag.out
@@ -1,5 +1,4 @@
spv.tpipBlockMatchWindowSAD.frag
-Validation failed
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 72
diff --git a/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSSD.frag.out b/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSSD.frag.out
index 1e2fa1fb53..797ecd7470 100644
--- a/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSSD.frag.out
+++ b/third_party/vulkan-deps/glslang/src/Test/baseResults/spv.tpipBlockMatchWindowSSD.frag.out
@@ -1,5 +1,4 @@
spv.tpipBlockMatchWindowSSD.frag
-Validation failed
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 72
diff --git a/third_party/vulkan-deps/glslang/src/glslang/MachineIndependent/ShaderLang.cpp b/third_party/vulkan-deps/glslang/src/glslang/MachineIndependent/ShaderLang.cpp
index 29d5d5f871..5264b3bcbb 100644
--- a/third_party/vulkan-deps/glslang/src/glslang/MachineIndependent/ShaderLang.cpp
+++ b/third_party/vulkan-deps/glslang/src/glslang/MachineIndependent/ShaderLang.cpp
@@ -2105,6 +2105,8 @@ const char* TProgram::getInfoDebugLog()
// Reflection implementation.
//
+unsigned int TObjectReflection::layoutLocation() const { return type->getQualifier().layoutLocation; }
+
bool TProgram::buildReflection(int opts)
{
if (! linked || reflection != nullptr)
diff --git a/third_party/vulkan-deps/glslang/src/glslang/Public/ShaderLang.h b/third_party/vulkan-deps/glslang/src/glslang/Public/ShaderLang.h
index 046fd917cc..b71b147a5d 100644
--- a/third_party/vulkan-deps/glslang/src/glslang/Public/ShaderLang.h
+++ b/third_party/vulkan-deps/glslang/src/glslang/Public/ShaderLang.h
@@ -745,6 +745,8 @@ public:
GLSLANG_EXPORT void dump() const;
static TObjectReflection badReflection() { return TObjectReflection(); }
+ GLSLANG_EXPORT unsigned int layoutLocation() const;
+
std::string name;
int offset;
int glDefineType;
diff --git a/third_party/vulkan-deps/glslang/src/known_good.json b/third_party/vulkan-deps/glslang/src/known_good.json
index 9324b95fa7..d01b293662 100644
--- a/third_party/vulkan-deps/glslang/src/known_good.json
+++ b/third_party/vulkan-deps/glslang/src/known_good.json
@@ -5,7 +5,7 @@
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Tools",
"subdir" : "External/spirv-tools",
- "commit": "02470f606fe1571de808cb773d8c521ab201aaff"
+ "commit": "dd4b663e13c07fea4fbb3f70c1c91c86731099f7"
},
{
"name" : "spirv-tools/external/spirv-headers",
diff --git a/third_party/vulkan-deps/spirv-headers/src/include/spirv/spir-v.xml b/third_party/vulkan-deps/spirv-headers/src/include/spirv/spir-v.xml
index 52de097a39..f9b23ac418 100644
--- a/third_party/vulkan-deps/spirv-headers/src/include/spirv/spir-v.xml
+++ b/third_party/vulkan-deps/spirv-headers/src/include/spirv/spir-v.xml
@@ -157,7 +157,7 @@
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
<!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
+ <ids type="opcode" start="6720" end="65535" comment="Opcode range reservable for future use by vendors"/>
<!-- End reservations of opcodes -->
@@ -190,7 +190,7 @@
sure to fill in the vendor attribute, and preferably add a contact
person/address in a comment attribute. -->
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+ <ids type="enumerant" start="6720" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
<!-- End reservations of enumerants -->
diff --git a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.h b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.h
index e544a853dd..13d3082810 100644
--- a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.h
+++ b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.h
@@ -2888,6 +2888,1779 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
}
}
+inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
+ switch (value) {
+ case SpvSourceLanguageUnknown: return "Unknown";
+ case SpvSourceLanguageESSL: return "ESSL";
+ case SpvSourceLanguageGLSL: return "GLSL";
+ case SpvSourceLanguageOpenCL_C: return "OpenCL_C";
+ case SpvSourceLanguageOpenCL_CPP: return "OpenCL_CPP";
+ case SpvSourceLanguageHLSL: return "HLSL";
+ case SpvSourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
+ case SpvSourceLanguageSYCL: return "SYCL";
+ case SpvSourceLanguageHERO_C: return "HERO_C";
+ case SpvSourceLanguageNZSL: return "NZSL";
+ case SpvSourceLanguageWGSL: return "WGSL";
+ case SpvSourceLanguageSlang: return "Slang";
+ case SpvSourceLanguageZig: return "Zig";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvExecutionModelToString(SpvExecutionModel value) {
+ switch (value) {
+ case SpvExecutionModelVertex: return "Vertex";
+ case SpvExecutionModelTessellationControl: return "TessellationControl";
+ case SpvExecutionModelTessellationEvaluation: return "TessellationEvaluation";
+ case SpvExecutionModelGeometry: return "Geometry";
+ case SpvExecutionModelFragment: return "Fragment";
+ case SpvExecutionModelGLCompute: return "GLCompute";
+ case SpvExecutionModelKernel: return "Kernel";
+ case SpvExecutionModelTaskNV: return "TaskNV";
+ case SpvExecutionModelMeshNV: return "MeshNV";
+ case SpvExecutionModelRayGenerationKHR: return "RayGenerationKHR";
+ case SpvExecutionModelIntersectionKHR: return "IntersectionKHR";
+ case SpvExecutionModelAnyHitKHR: return "AnyHitKHR";
+ case SpvExecutionModelClosestHitKHR: return "ClosestHitKHR";
+ case SpvExecutionModelMissKHR: return "MissKHR";
+ case SpvExecutionModelCallableKHR: return "CallableKHR";
+ case SpvExecutionModelTaskEXT: return "TaskEXT";
+ case SpvExecutionModelMeshEXT: return "MeshEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvAddressingModelToString(SpvAddressingModel value) {
+ switch (value) {
+ case SpvAddressingModelLogical: return "Logical";
+ case SpvAddressingModelPhysical32: return "Physical32";
+ case SpvAddressingModelPhysical64: return "Physical64";
+ case SpvAddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvMemoryModelToString(SpvMemoryModel value) {
+ switch (value) {
+ case SpvMemoryModelSimple: return "Simple";
+ case SpvMemoryModelGLSL450: return "GLSL450";
+ case SpvMemoryModelOpenCL: return "OpenCL";
+ case SpvMemoryModelVulkan: return "Vulkan";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
+ switch (value) {
+ case SpvExecutionModeInvocations: return "Invocations";
+ case SpvExecutionModeSpacingEqual: return "SpacingEqual";
+ case SpvExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
+ case SpvExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
+ case SpvExecutionModeVertexOrderCw: return "VertexOrderCw";
+ case SpvExecutionModeVertexOrderCcw: return "VertexOrderCcw";
+ case SpvExecutionModePixelCenterInteger: return "PixelCenterInteger";
+ case SpvExecutionModeOriginUpperLeft: return "OriginUpperLeft";
+ case SpvExecutionModeOriginLowerLeft: return "OriginLowerLeft";
+ case SpvExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
+ case SpvExecutionModePointMode: return "PointMode";
+ case SpvExecutionModeXfb: return "Xfb";
+ case SpvExecutionModeDepthReplacing: return "DepthReplacing";
+ case SpvExecutionModeDepthGreater: return "DepthGreater";
+ case SpvExecutionModeDepthLess: return "DepthLess";
+ case SpvExecutionModeDepthUnchanged: return "DepthUnchanged";
+ case SpvExecutionModeLocalSize: return "LocalSize";
+ case SpvExecutionModeLocalSizeHint: return "LocalSizeHint";
+ case SpvExecutionModeInputPoints: return "InputPoints";
+ case SpvExecutionModeInputLines: return "InputLines";
+ case SpvExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
+ case SpvExecutionModeTriangles: return "Triangles";
+ case SpvExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
+ case SpvExecutionModeQuads: return "Quads";
+ case SpvExecutionModeIsolines: return "Isolines";
+ case SpvExecutionModeOutputVertices: return "OutputVertices";
+ case SpvExecutionModeOutputPoints: return "OutputPoints";
+ case SpvExecutionModeOutputLineStrip: return "OutputLineStrip";
+ case SpvExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
+ case SpvExecutionModeVecTypeHint: return "VecTypeHint";
+ case SpvExecutionModeContractionOff: return "ContractionOff";
+ case SpvExecutionModeInitializer: return "Initializer";
+ case SpvExecutionModeFinalizer: return "Finalizer";
+ case SpvExecutionModeSubgroupSize: return "SubgroupSize";
+ case SpvExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
+ case SpvExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
+ case SpvExecutionModeLocalSizeId: return "LocalSizeId";
+ case SpvExecutionModeLocalSizeHintId: return "LocalSizeHintId";
+ case SpvExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
+ case SpvExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
+ case SpvExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
+ case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
+ case SpvExecutionModePostDepthCoverage: return "PostDepthCoverage";
+ case SpvExecutionModeDenormPreserve: return "DenormPreserve";
+ case SpvExecutionModeDenormFlushToZero: return "DenormFlushToZero";
+ case SpvExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case SpvExecutionModeRoundingModeRTE: return "RoundingModeRTE";
+ case SpvExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
+ case SpvExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
+ case SpvExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
+ case SpvExecutionModeCoalescingAMDX: return "CoalescingAMDX";
+ case SpvExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
+ case SpvExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
+ case SpvExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
+ case SpvExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
+ case SpvExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
+ case SpvExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
+ case SpvExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
+ case SpvExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
+ case SpvExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
+ case SpvExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
+ case SpvExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
+ case SpvExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
+ case SpvExecutionModeOutputLinesEXT: return "OutputLinesEXT";
+ case SpvExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
+ case SpvExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV";
+ case SpvExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
+ case SpvExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
+ case SpvExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
+ case SpvExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
+ case SpvExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
+ case SpvExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
+ case SpvExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
+ case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
+ case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
+ case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
+ case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
+ case SpvExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
+ case SpvExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
+ case SpvExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
+ case SpvExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
+ case SpvExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
+ case SpvExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
+ case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
+ case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
+ case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+ case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
+ case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
+ case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
+ case SpvExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
+ case SpvExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
+ case SpvExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvStorageClassToString(SpvStorageClass value) {
+ switch (value) {
+ case SpvStorageClassUniformConstant: return "UniformConstant";
+ case SpvStorageClassInput: return "Input";
+ case SpvStorageClassUniform: return "Uniform";
+ case SpvStorageClassOutput: return "Output";
+ case SpvStorageClassWorkgroup: return "Workgroup";
+ case SpvStorageClassCrossWorkgroup: return "CrossWorkgroup";
+ case SpvStorageClassPrivate: return "Private";
+ case SpvStorageClassFunction: return "Function";
+ case SpvStorageClassGeneric: return "Generic";
+ case SpvStorageClassPushConstant: return "PushConstant";
+ case SpvStorageClassAtomicCounter: return "AtomicCounter";
+ case SpvStorageClassImage: return "Image";
+ case SpvStorageClassStorageBuffer: return "StorageBuffer";
+ case SpvStorageClassTileImageEXT: return "TileImageEXT";
+ case SpvStorageClassNodePayloadAMDX: return "NodePayloadAMDX";
+ case SpvStorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX";
+ case SpvStorageClassCallableDataKHR: return "CallableDataKHR";
+ case SpvStorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
+ case SpvStorageClassRayPayloadKHR: return "RayPayloadKHR";
+ case SpvStorageClassHitAttributeKHR: return "HitAttributeKHR";
+ case SpvStorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
+ case SpvStorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
+ case SpvStorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
+ case SpvStorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
+ case SpvStorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
+ case SpvStorageClassCodeSectionINTEL: return "CodeSectionINTEL";
+ case SpvStorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL";
+ case SpvStorageClassHostOnlyINTEL: return "HostOnlyINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvDimToString(SpvDim value) {
+ switch (value) {
+ case SpvDim1D: return "1D";
+ case SpvDim2D: return "2D";
+ case SpvDim3D: return "3D";
+ case SpvDimCube: return "Cube";
+ case SpvDimRect: return "Rect";
+ case SpvDimBuffer: return "Buffer";
+ case SpvDimSubpassData: return "SubpassData";
+ case SpvDimTileImageDataEXT: return "TileImageDataEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value) {
+ switch (value) {
+ case SpvSamplerAddressingModeNone: return "None";
+ case SpvSamplerAddressingModeClampToEdge: return "ClampToEdge";
+ case SpvSamplerAddressingModeClamp: return "Clamp";
+ case SpvSamplerAddressingModeRepeat: return "Repeat";
+ case SpvSamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvSamplerFilterModeToString(SpvSamplerFilterMode value) {
+ switch (value) {
+ case SpvSamplerFilterModeNearest: return "Nearest";
+ case SpvSamplerFilterModeLinear: return "Linear";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvImageFormatToString(SpvImageFormat value) {
+ switch (value) {
+ case SpvImageFormatUnknown: return "Unknown";
+ case SpvImageFormatRgba32f: return "Rgba32f";
+ case SpvImageFormatRgba16f: return "Rgba16f";
+ case SpvImageFormatR32f: return "R32f";
+ case SpvImageFormatRgba8: return "Rgba8";
+ case SpvImageFormatRgba8Snorm: return "Rgba8Snorm";
+ case SpvImageFormatRg32f: return "Rg32f";
+ case SpvImageFormatRg16f: return "Rg16f";
+ case SpvImageFormatR11fG11fB10f: return "R11fG11fB10f";
+ case SpvImageFormatR16f: return "R16f";
+ case SpvImageFormatRgba16: return "Rgba16";
+ case SpvImageFormatRgb10A2: return "Rgb10A2";
+ case SpvImageFormatRg16: return "Rg16";
+ case SpvImageFormatRg8: return "Rg8";
+ case SpvImageFormatR16: return "R16";
+ case SpvImageFormatR8: return "R8";
+ case SpvImageFormatRgba16Snorm: return "Rgba16Snorm";
+ case SpvImageFormatRg16Snorm: return "Rg16Snorm";
+ case SpvImageFormatRg8Snorm: return "Rg8Snorm";
+ case SpvImageFormatR16Snorm: return "R16Snorm";
+ case SpvImageFormatR8Snorm: return "R8Snorm";
+ case SpvImageFormatRgba32i: return "Rgba32i";
+ case SpvImageFormatRgba16i: return "Rgba16i";
+ case SpvImageFormatRgba8i: return "Rgba8i";
+ case SpvImageFormatR32i: return "R32i";
+ case SpvImageFormatRg32i: return "Rg32i";
+ case SpvImageFormatRg16i: return "Rg16i";
+ case SpvImageFormatRg8i: return "Rg8i";
+ case SpvImageFormatR16i: return "R16i";
+ case SpvImageFormatR8i: return "R8i";
+ case SpvImageFormatRgba32ui: return "Rgba32ui";
+ case SpvImageFormatRgba16ui: return "Rgba16ui";
+ case SpvImageFormatRgba8ui: return "Rgba8ui";
+ case SpvImageFormatR32ui: return "R32ui";
+ case SpvImageFormatRgb10a2ui: return "Rgb10a2ui";
+ case SpvImageFormatRg32ui: return "Rg32ui";
+ case SpvImageFormatRg16ui: return "Rg16ui";
+ case SpvImageFormatRg8ui: return "Rg8ui";
+ case SpvImageFormatR16ui: return "R16ui";
+ case SpvImageFormatR8ui: return "R8ui";
+ case SpvImageFormatR64ui: return "R64ui";
+ case SpvImageFormatR64i: return "R64i";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvImageChannelOrderToString(SpvImageChannelOrder value) {
+ switch (value) {
+ case SpvImageChannelOrderR: return "R";
+ case SpvImageChannelOrderA: return "A";
+ case SpvImageChannelOrderRG: return "RG";
+ case SpvImageChannelOrderRA: return "RA";
+ case SpvImageChannelOrderRGB: return "RGB";
+ case SpvImageChannelOrderRGBA: return "RGBA";
+ case SpvImageChannelOrderBGRA: return "BGRA";
+ case SpvImageChannelOrderARGB: return "ARGB";
+ case SpvImageChannelOrderIntensity: return "Intensity";
+ case SpvImageChannelOrderLuminance: return "Luminance";
+ case SpvImageChannelOrderRx: return "Rx";
+ case SpvImageChannelOrderRGx: return "RGx";
+ case SpvImageChannelOrderRGBx: return "RGBx";
+ case SpvImageChannelOrderDepth: return "Depth";
+ case SpvImageChannelOrderDepthStencil: return "DepthStencil";
+ case SpvImageChannelOrdersRGB: return "sRGB";
+ case SpvImageChannelOrdersRGBx: return "sRGBx";
+ case SpvImageChannelOrdersRGBA: return "sRGBA";
+ case SpvImageChannelOrdersBGRA: return "sBGRA";
+ case SpvImageChannelOrderABGR: return "ABGR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvImageChannelDataTypeToString(SpvImageChannelDataType value) {
+ switch (value) {
+ case SpvImageChannelDataTypeSnormInt8: return "SnormInt8";
+ case SpvImageChannelDataTypeSnormInt16: return "SnormInt16";
+ case SpvImageChannelDataTypeUnormInt8: return "UnormInt8";
+ case SpvImageChannelDataTypeUnormInt16: return "UnormInt16";
+ case SpvImageChannelDataTypeUnormShort565: return "UnormShort565";
+ case SpvImageChannelDataTypeUnormShort555: return "UnormShort555";
+ case SpvImageChannelDataTypeUnormInt101010: return "UnormInt101010";
+ case SpvImageChannelDataTypeSignedInt8: return "SignedInt8";
+ case SpvImageChannelDataTypeSignedInt16: return "SignedInt16";
+ case SpvImageChannelDataTypeSignedInt32: return "SignedInt32";
+ case SpvImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
+ case SpvImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
+ case SpvImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
+ case SpvImageChannelDataTypeHalfFloat: return "HalfFloat";
+ case SpvImageChannelDataTypeFloat: return "Float";
+ case SpvImageChannelDataTypeUnormInt24: return "UnormInt24";
+ case SpvImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
+ case SpvImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
+ case SpvImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvFPRoundingModeToString(SpvFPRoundingMode value) {
+ switch (value) {
+ case SpvFPRoundingModeRTE: return "RTE";
+ case SpvFPRoundingModeRTZ: return "RTZ";
+ case SpvFPRoundingModeRTP: return "RTP";
+ case SpvFPRoundingModeRTN: return "RTN";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
+ switch (value) {
+ case SpvLinkageTypeExport: return "Export";
+ case SpvLinkageTypeImport: return "Import";
+ case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvAccessQualifierToString(SpvAccessQualifier value) {
+ switch (value) {
+ case SpvAccessQualifierReadOnly: return "ReadOnly";
+ case SpvAccessQualifierWriteOnly: return "WriteOnly";
+ case SpvAccessQualifierReadWrite: return "ReadWrite";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value) {
+ switch (value) {
+ case SpvFunctionParameterAttributeZext: return "Zext";
+ case SpvFunctionParameterAttributeSext: return "Sext";
+ case SpvFunctionParameterAttributeByVal: return "ByVal";
+ case SpvFunctionParameterAttributeSret: return "Sret";
+ case SpvFunctionParameterAttributeNoAlias: return "NoAlias";
+ case SpvFunctionParameterAttributeNoCapture: return "NoCapture";
+ case SpvFunctionParameterAttributeNoWrite: return "NoWrite";
+ case SpvFunctionParameterAttributeNoReadWrite: return "NoReadWrite";
+ case SpvFunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvDecorationToString(SpvDecoration value) {
+ switch (value) {
+ case SpvDecorationRelaxedPrecision: return "RelaxedPrecision";
+ case SpvDecorationSpecId: return "SpecId";
+ case SpvDecorationBlock: return "Block";
+ case SpvDecorationBufferBlock: return "BufferBlock";
+ case SpvDecorationRowMajor: return "RowMajor";
+ case SpvDecorationColMajor: return "ColMajor";
+ case SpvDecorationArrayStride: return "ArrayStride";
+ case SpvDecorationMatrixStride: return "MatrixStride";
+ case SpvDecorationGLSLShared: return "GLSLShared";
+ case SpvDecorationGLSLPacked: return "GLSLPacked";
+ case SpvDecorationCPacked: return "CPacked";
+ case SpvDecorationBuiltIn: return "BuiltIn";
+ case SpvDecorationNoPerspective: return "NoPerspective";
+ case SpvDecorationFlat: return "Flat";
+ case SpvDecorationPatch: return "Patch";
+ case SpvDecorationCentroid: return "Centroid";
+ case SpvDecorationSample: return "Sample";
+ case SpvDecorationInvariant: return "Invariant";
+ case SpvDecorationRestrict: return "Restrict";
+ case SpvDecorationAliased: return "Aliased";
+ case SpvDecorationVolatile: return "Volatile";
+ case SpvDecorationConstant: return "Constant";
+ case SpvDecorationCoherent: return "Coherent";
+ case SpvDecorationNonWritable: return "NonWritable";
+ case SpvDecorationNonReadable: return "NonReadable";
+ case SpvDecorationUniform: return "Uniform";
+ case SpvDecorationUniformId: return "UniformId";
+ case SpvDecorationSaturatedConversion: return "SaturatedConversion";
+ case SpvDecorationStream: return "Stream";
+ case SpvDecorationLocation: return "Location";
+ case SpvDecorationComponent: return "Component";
+ case SpvDecorationIndex: return "Index";
+ case SpvDecorationBinding: return "Binding";
+ case SpvDecorationDescriptorSet: return "DescriptorSet";
+ case SpvDecorationOffset: return "Offset";
+ case SpvDecorationXfbBuffer: return "XfbBuffer";
+ case SpvDecorationXfbStride: return "XfbStride";
+ case SpvDecorationFuncParamAttr: return "FuncParamAttr";
+ case SpvDecorationFPRoundingMode: return "FPRoundingMode";
+ case SpvDecorationFPFastMathMode: return "FPFastMathMode";
+ case SpvDecorationLinkageAttributes: return "LinkageAttributes";
+ case SpvDecorationNoContraction: return "NoContraction";
+ case SpvDecorationInputAttachmentIndex: return "InputAttachmentIndex";
+ case SpvDecorationAlignment: return "Alignment";
+ case SpvDecorationMaxByteOffset: return "MaxByteOffset";
+ case SpvDecorationAlignmentId: return "AlignmentId";
+ case SpvDecorationMaxByteOffsetId: return "MaxByteOffsetId";
+ case SpvDecorationNoSignedWrap: return "NoSignedWrap";
+ case SpvDecorationNoUnsignedWrap: return "NoUnsignedWrap";
+ case SpvDecorationWeightTextureQCOM: return "WeightTextureQCOM";
+ case SpvDecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
+ case SpvDecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
+ case SpvDecorationExplicitInterpAMD: return "ExplicitInterpAMD";
+ case SpvDecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
+ case SpvDecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
+ case SpvDecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
+ case SpvDecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
+ case SpvDecorationOverrideCoverageNV: return "OverrideCoverageNV";
+ case SpvDecorationPassthroughNV: return "PassthroughNV";
+ case SpvDecorationViewportRelativeNV: return "ViewportRelativeNV";
+ case SpvDecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
+ case SpvDecorationPerPrimitiveEXT: return "PerPrimitiveEXT";
+ case SpvDecorationPerViewNV: return "PerViewNV";
+ case SpvDecorationPerTaskNV: return "PerTaskNV";
+ case SpvDecorationPerVertexKHR: return "PerVertexKHR";
+ case SpvDecorationNonUniform: return "NonUniform";
+ case SpvDecorationRestrictPointer: return "RestrictPointer";
+ case SpvDecorationAliasedPointer: return "AliasedPointer";
+ case SpvDecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
+ case SpvDecorationBindlessSamplerNV: return "BindlessSamplerNV";
+ case SpvDecorationBindlessImageNV: return "BindlessImageNV";
+ case SpvDecorationBoundSamplerNV: return "BoundSamplerNV";
+ case SpvDecorationBoundImageNV: return "BoundImageNV";
+ case SpvDecorationSIMTCallINTEL: return "SIMTCallINTEL";
+ case SpvDecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
+ case SpvDecorationClobberINTEL: return "ClobberINTEL";
+ case SpvDecorationSideEffectsINTEL: return "SideEffectsINTEL";
+ case SpvDecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
+ case SpvDecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
+ case SpvDecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
+ case SpvDecorationStackCallINTEL: return "StackCallINTEL";
+ case SpvDecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
+ case SpvDecorationCounterBuffer: return "CounterBuffer";
+ case SpvDecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
+ case SpvDecorationUserTypeGOOGLE: return "UserTypeGOOGLE";
+ case SpvDecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
+ case SpvDecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
+ case SpvDecorationRegisterINTEL: return "RegisterINTEL";
+ case SpvDecorationMemoryINTEL: return "MemoryINTEL";
+ case SpvDecorationNumbanksINTEL: return "NumbanksINTEL";
+ case SpvDecorationBankwidthINTEL: return "BankwidthINTEL";
+ case SpvDecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
+ case SpvDecorationSinglepumpINTEL: return "SinglepumpINTEL";
+ case SpvDecorationDoublepumpINTEL: return "DoublepumpINTEL";
+ case SpvDecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL";
+ case SpvDecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL";
+ case SpvDecorationMergeINTEL: return "MergeINTEL";
+ case SpvDecorationBankBitsINTEL: return "BankBitsINTEL";
+ case SpvDecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
+ case SpvDecorationStridesizeINTEL: return "StridesizeINTEL";
+ case SpvDecorationWordsizeINTEL: return "WordsizeINTEL";
+ case SpvDecorationTrueDualPortINTEL: return "TrueDualPortINTEL";
+ case SpvDecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL";
+ case SpvDecorationCacheSizeINTEL: return "CacheSizeINTEL";
+ case SpvDecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
+ case SpvDecorationPrefetchINTEL: return "PrefetchINTEL";
+ case SpvDecorationStallEnableINTEL: return "StallEnableINTEL";
+ case SpvDecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
+ case SpvDecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
+ case SpvDecorationAliasScopeINTEL: return "AliasScopeINTEL";
+ case SpvDecorationNoAliasINTEL: return "NoAliasINTEL";
+ case SpvDecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL";
+ case SpvDecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
+ case SpvDecorationPipelineEnableINTEL: return "PipelineEnableINTEL";
+ case SpvDecorationBufferLocationINTEL: return "BufferLocationINTEL";
+ case SpvDecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL";
+ case SpvDecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
+ case SpvDecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
+ case SpvDecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
+ case SpvDecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
+ case SpvDecorationStallFreeINTEL: return "StallFreeINTEL";
+ case SpvDecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
+ case SpvDecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
+ case SpvDecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
+ case SpvDecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
+ case SpvDecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
+ case SpvDecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
+ case SpvDecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
+ case SpvDecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
+ case SpvDecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
+ case SpvDecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
+ case SpvDecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
+ case SpvDecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
+ case SpvDecorationHostAccessINTEL: return "HostAccessINTEL";
+ case SpvDecorationInitModeINTEL: return "InitModeINTEL";
+ case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
+ case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
+ case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvBuiltInToString(SpvBuiltIn value) {
+ switch (value) {
+ case SpvBuiltInPosition: return "Position";
+ case SpvBuiltInPointSize: return "PointSize";
+ case SpvBuiltInClipDistance: return "ClipDistance";
+ case SpvBuiltInCullDistance: return "CullDistance";
+ case SpvBuiltInVertexId: return "VertexId";
+ case SpvBuiltInInstanceId: return "InstanceId";
+ case SpvBuiltInPrimitiveId: return "PrimitiveId";
+ case SpvBuiltInInvocationId: return "InvocationId";
+ case SpvBuiltInLayer: return "Layer";
+ case SpvBuiltInViewportIndex: return "ViewportIndex";
+ case SpvBuiltInTessLevelOuter: return "TessLevelOuter";
+ case SpvBuiltInTessLevelInner: return "TessLevelInner";
+ case SpvBuiltInTessCoord: return "TessCoord";
+ case SpvBuiltInPatchVertices: return "PatchVertices";
+ case SpvBuiltInFragCoord: return "FragCoord";
+ case SpvBuiltInPointCoord: return "PointCoord";
+ case SpvBuiltInFrontFacing: return "FrontFacing";
+ case SpvBuiltInSampleId: return "SampleId";
+ case SpvBuiltInSamplePosition: return "SamplePosition";
+ case SpvBuiltInSampleMask: return "SampleMask";
+ case SpvBuiltInFragDepth: return "FragDepth";
+ case SpvBuiltInHelperInvocation: return "HelperInvocation";
+ case SpvBuiltInNumWorkgroups: return "NumWorkgroups";
+ case SpvBuiltInWorkgroupSize: return "WorkgroupSize";
+ case SpvBuiltInWorkgroupId: return "WorkgroupId";
+ case SpvBuiltInLocalInvocationId: return "LocalInvocationId";
+ case SpvBuiltInGlobalInvocationId: return "GlobalInvocationId";
+ case SpvBuiltInLocalInvocationIndex: return "LocalInvocationIndex";
+ case SpvBuiltInWorkDim: return "WorkDim";
+ case SpvBuiltInGlobalSize: return "GlobalSize";
+ case SpvBuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
+ case SpvBuiltInGlobalOffset: return "GlobalOffset";
+ case SpvBuiltInGlobalLinearId: return "GlobalLinearId";
+ case SpvBuiltInSubgroupSize: return "SubgroupSize";
+ case SpvBuiltInSubgroupMaxSize: return "SubgroupMaxSize";
+ case SpvBuiltInNumSubgroups: return "NumSubgroups";
+ case SpvBuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
+ case SpvBuiltInSubgroupId: return "SubgroupId";
+ case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
+ case SpvBuiltInVertexIndex: return "VertexIndex";
+ case SpvBuiltInInstanceIndex: return "InstanceIndex";
+ case SpvBuiltInCoreIDARM: return "CoreIDARM";
+ case SpvBuiltInCoreCountARM: return "CoreCountARM";
+ case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
+ case SpvBuiltInWarpIDARM: return "WarpIDARM";
+ case SpvBuiltInWarpMaxIDARM: return "WarpMaxIDARM";
+ case SpvBuiltInSubgroupEqMask: return "SubgroupEqMask";
+ case SpvBuiltInSubgroupGeMask: return "SubgroupGeMask";
+ case SpvBuiltInSubgroupGtMask: return "SubgroupGtMask";
+ case SpvBuiltInSubgroupLeMask: return "SubgroupLeMask";
+ case SpvBuiltInSubgroupLtMask: return "SubgroupLtMask";
+ case SpvBuiltInBaseVertex: return "BaseVertex";
+ case SpvBuiltInBaseInstance: return "BaseInstance";
+ case SpvBuiltInDrawIndex: return "DrawIndex";
+ case SpvBuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
+ case SpvBuiltInDeviceIndex: return "DeviceIndex";
+ case SpvBuiltInViewIndex: return "ViewIndex";
+ case SpvBuiltInShadingRateKHR: return "ShadingRateKHR";
+ case SpvBuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
+ case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
+ case SpvBuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
+ case SpvBuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
+ case SpvBuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
+ case SpvBuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
+ case SpvBuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
+ case SpvBuiltInFragStencilRefEXT: return "FragStencilRefEXT";
+ case SpvBuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX";
+ case SpvBuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
+ case SpvBuiltInViewportMaskNV: return "ViewportMaskNV";
+ case SpvBuiltInSecondaryPositionNV: return "SecondaryPositionNV";
+ case SpvBuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
+ case SpvBuiltInPositionPerViewNV: return "PositionPerViewNV";
+ case SpvBuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
+ case SpvBuiltInFullyCoveredEXT: return "FullyCoveredEXT";
+ case SpvBuiltInTaskCountNV: return "TaskCountNV";
+ case SpvBuiltInPrimitiveCountNV: return "PrimitiveCountNV";
+ case SpvBuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
+ case SpvBuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
+ case SpvBuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
+ case SpvBuiltInLayerPerViewNV: return "LayerPerViewNV";
+ case SpvBuiltInMeshViewCountNV: return "MeshViewCountNV";
+ case SpvBuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
+ case SpvBuiltInBaryCoordKHR: return "BaryCoordKHR";
+ case SpvBuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
+ case SpvBuiltInFragSizeEXT: return "FragSizeEXT";
+ case SpvBuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
+ case SpvBuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
+ case SpvBuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
+ case SpvBuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
+ case SpvBuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
+ case SpvBuiltInLaunchIdKHR: return "LaunchIdKHR";
+ case SpvBuiltInLaunchSizeKHR: return "LaunchSizeKHR";
+ case SpvBuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
+ case SpvBuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
+ case SpvBuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
+ case SpvBuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
+ case SpvBuiltInRayTminKHR: return "RayTminKHR";
+ case SpvBuiltInRayTmaxKHR: return "RayTmaxKHR";
+ case SpvBuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
+ case SpvBuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
+ case SpvBuiltInWorldToObjectKHR: return "WorldToObjectKHR";
+ case SpvBuiltInHitTNV: return "HitTNV";
+ case SpvBuiltInHitKindKHR: return "HitKindKHR";
+ case SpvBuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
+ case SpvBuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
+ case SpvBuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
+ case SpvBuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
+ case SpvBuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
+ case SpvBuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
+ case SpvBuiltInWarpsPerSMNV: return "WarpsPerSMNV";
+ case SpvBuiltInSMCountNV: return "SMCountNV";
+ case SpvBuiltInWarpIDNV: return "WarpIDNV";
+ case SpvBuiltInSMIDNV: return "SMIDNV";
+ case SpvBuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
+ case SpvBuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
+ case SpvBuiltInCullMaskKHR: return "CullMaskKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvScopeToString(SpvScope value) {
+ switch (value) {
+ case SpvScopeCrossDevice: return "CrossDevice";
+ case SpvScopeDevice: return "Device";
+ case SpvScopeWorkgroup: return "Workgroup";
+ case SpvScopeSubgroup: return "Subgroup";
+ case SpvScopeInvocation: return "Invocation";
+ case SpvScopeQueueFamily: return "QueueFamily";
+ case SpvScopeShaderCallKHR: return "ShaderCallKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvGroupOperationToString(SpvGroupOperation value) {
+ switch (value) {
+ case SpvGroupOperationReduce: return "Reduce";
+ case SpvGroupOperationInclusiveScan: return "InclusiveScan";
+ case SpvGroupOperationExclusiveScan: return "ExclusiveScan";
+ case SpvGroupOperationClusteredReduce: return "ClusteredReduce";
+ case SpvGroupOperationPartitionedReduceNV: return "PartitionedReduceNV";
+ case SpvGroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
+ case SpvGroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value) {
+ switch (value) {
+ case SpvKernelEnqueueFlagsNoWait: return "NoWait";
+ case SpvKernelEnqueueFlagsWaitKernel: return "WaitKernel";
+ case SpvKernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvCapabilityToString(SpvCapability value) {
+ switch (value) {
+ case SpvCapabilityMatrix: return "Matrix";
+ case SpvCapabilityShader: return "Shader";
+ case SpvCapabilityGeometry: return "Geometry";
+ case SpvCapabilityTessellation: return "Tessellation";
+ case SpvCapabilityAddresses: return "Addresses";
+ case SpvCapabilityLinkage: return "Linkage";
+ case SpvCapabilityKernel: return "Kernel";
+ case SpvCapabilityVector16: return "Vector16";
+ case SpvCapabilityFloat16Buffer: return "Float16Buffer";
+ case SpvCapabilityFloat16: return "Float16";
+ case SpvCapabilityFloat64: return "Float64";
+ case SpvCapabilityInt64: return "Int64";
+ case SpvCapabilityInt64Atomics: return "Int64Atomics";
+ case SpvCapabilityImageBasic: return "ImageBasic";
+ case SpvCapabilityImageReadWrite: return "ImageReadWrite";
+ case SpvCapabilityImageMipmap: return "ImageMipmap";
+ case SpvCapabilityPipes: return "Pipes";
+ case SpvCapabilityGroups: return "Groups";
+ case SpvCapabilityDeviceEnqueue: return "DeviceEnqueue";
+ case SpvCapabilityLiteralSampler: return "LiteralSampler";
+ case SpvCapabilityAtomicStorage: return "AtomicStorage";
+ case SpvCapabilityInt16: return "Int16";
+ case SpvCapabilityTessellationPointSize: return "TessellationPointSize";
+ case SpvCapabilityGeometryPointSize: return "GeometryPointSize";
+ case SpvCapabilityImageGatherExtended: return "ImageGatherExtended";
+ case SpvCapabilityStorageImageMultisample: return "StorageImageMultisample";
+ case SpvCapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
+ case SpvCapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
+ case SpvCapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
+ case SpvCapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
+ case SpvCapabilityClipDistance: return "ClipDistance";
+ case SpvCapabilityCullDistance: return "CullDistance";
+ case SpvCapabilityImageCubeArray: return "ImageCubeArray";
+ case SpvCapabilitySampleRateShading: return "SampleRateShading";
+ case SpvCapabilityImageRect: return "ImageRect";
+ case SpvCapabilitySampledRect: return "SampledRect";
+ case SpvCapabilityGenericPointer: return "GenericPointer";
+ case SpvCapabilityInt8: return "Int8";
+ case SpvCapabilityInputAttachment: return "InputAttachment";
+ case SpvCapabilitySparseResidency: return "SparseResidency";
+ case SpvCapabilityMinLod: return "MinLod";
+ case SpvCapabilitySampled1D: return "Sampled1D";
+ case SpvCapabilityImage1D: return "Image1D";
+ case SpvCapabilitySampledCubeArray: return "SampledCubeArray";
+ case SpvCapabilitySampledBuffer: return "SampledBuffer";
+ case SpvCapabilityImageBuffer: return "ImageBuffer";
+ case SpvCapabilityImageMSArray: return "ImageMSArray";
+ case SpvCapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
+ case SpvCapabilityImageQuery: return "ImageQuery";
+ case SpvCapabilityDerivativeControl: return "DerivativeControl";
+ case SpvCapabilityInterpolationFunction: return "InterpolationFunction";
+ case SpvCapabilityTransformFeedback: return "TransformFeedback";
+ case SpvCapabilityGeometryStreams: return "GeometryStreams";
+ case SpvCapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
+ case SpvCapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
+ case SpvCapabilityMultiViewport: return "MultiViewport";
+ case SpvCapabilitySubgroupDispatch: return "SubgroupDispatch";
+ case SpvCapabilityNamedBarrier: return "NamedBarrier";
+ case SpvCapabilityPipeStorage: return "PipeStorage";
+ case SpvCapabilityGroupNonUniform: return "GroupNonUniform";
+ case SpvCapabilityGroupNonUniformVote: return "GroupNonUniformVote";
+ case SpvCapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
+ case SpvCapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
+ case SpvCapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
+ case SpvCapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
+ case SpvCapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
+ case SpvCapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
+ case SpvCapabilityShaderLayer: return "ShaderLayer";
+ case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
+ case SpvCapabilityUniformDecoration: return "UniformDecoration";
+ case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
+ case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
+ case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
+ case SpvCapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
+ case SpvCapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
+ case SpvCapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
+ case SpvCapabilityDrawParameters: return "DrawParameters";
+ case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
+ case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
+ case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
+ case SpvCapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
+ case SpvCapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
+ case SpvCapabilityStorageUniform16: return "StorageUniform16";
+ case SpvCapabilityStoragePushConstant16: return "StoragePushConstant16";
+ case SpvCapabilityStorageInputOutput16: return "StorageInputOutput16";
+ case SpvCapabilityDeviceGroup: return "DeviceGroup";
+ case SpvCapabilityMultiView: return "MultiView";
+ case SpvCapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
+ case SpvCapabilityVariablePointers: return "VariablePointers";
+ case SpvCapabilityAtomicStorageOps: return "AtomicStorageOps";
+ case SpvCapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
+ case SpvCapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
+ case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
+ case SpvCapabilityStoragePushConstant8: return "StoragePushConstant8";
+ case SpvCapabilityDenormPreserve: return "DenormPreserve";
+ case SpvCapabilityDenormFlushToZero: return "DenormFlushToZero";
+ case SpvCapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case SpvCapabilityRoundingModeRTE: return "RoundingModeRTE";
+ case SpvCapabilityRoundingModeRTZ: return "RoundingModeRTZ";
+ case SpvCapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
+ case SpvCapabilityRayQueryKHR: return "RayQueryKHR";
+ case SpvCapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
+ case SpvCapabilityRayTracingKHR: return "RayTracingKHR";
+ case SpvCapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
+ case SpvCapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
+ case SpvCapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
+ case SpvCapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
+ case SpvCapabilityFloat16ImageAMD: return "Float16ImageAMD";
+ case SpvCapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
+ case SpvCapabilityFragmentMaskAMD: return "FragmentMaskAMD";
+ case SpvCapabilityStencilExportEXT: return "StencilExportEXT";
+ case SpvCapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
+ case SpvCapabilityInt64ImageEXT: return "Int64ImageEXT";
+ case SpvCapabilityShaderClockKHR: return "ShaderClockKHR";
+ case SpvCapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
+ case SpvCapabilityQuadControlKHR: return "QuadControlKHR";
+ case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
+ case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
+ case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
+ case SpvCapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV";
+ case SpvCapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
+ case SpvCapabilityPerViewAttributesNV: return "PerViewAttributesNV";
+ case SpvCapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
+ case SpvCapabilityMeshShadingNV: return "MeshShadingNV";
+ case SpvCapabilityImageFootprintNV: return "ImageFootprintNV";
+ case SpvCapabilityMeshShadingEXT: return "MeshShadingEXT";
+ case SpvCapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
+ case SpvCapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
+ case SpvCapabilityFragmentDensityEXT: return "FragmentDensityEXT";
+ case SpvCapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
+ case SpvCapabilityShaderNonUniform: return "ShaderNonUniform";
+ case SpvCapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray";
+ case SpvCapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
+ case SpvCapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
+ case SpvCapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
+ case SpvCapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
+ case SpvCapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
+ case SpvCapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
+ case SpvCapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
+ case SpvCapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
+ case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
+ case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
+ case SpvCapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
+ case SpvCapabilityRayTracingNV: return "RayTracingNV";
+ case SpvCapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
+ case SpvCapabilityVulkanMemoryModel: return "VulkanMemoryModel";
+ case SpvCapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
+ case SpvCapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
+ case SpvCapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
+ case SpvCapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
+ case SpvCapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
+ case SpvCapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
+ case SpvCapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
+ case SpvCapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
+ case SpvCapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
+ case SpvCapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation";
+ case SpvCapabilityDisplacementMicromapNV: return "DisplacementMicromapNV";
+ case SpvCapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
+ case SpvCapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
+ case SpvCapabilityBindlessTextureNV: return "BindlessTextureNV";
+ case SpvCapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
+ case SpvCapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
+ case SpvCapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
+ case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV";
+ case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
+ case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
+ case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
+ case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
+ case SpvCapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
+ case SpvCapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
+ case SpvCapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
+ case SpvCapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
+ case SpvCapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
+ case SpvCapabilityAsmINTEL: return "AsmINTEL";
+ case SpvCapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
+ case SpvCapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
+ case SpvCapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
+ case SpvCapabilityVectorComputeINTEL: return "VectorComputeINTEL";
+ case SpvCapabilityVectorAnyINTEL: return "VectorAnyINTEL";
+ case SpvCapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
+ case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
+ case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
+ case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
+ case SpvCapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
+ case SpvCapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
+ case SpvCapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
+ case SpvCapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
+ case SpvCapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
+ case SpvCapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
+ case SpvCapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
+ case SpvCapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
+ case SpvCapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
+ case SpvCapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
+ case SpvCapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
+ case SpvCapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
+ case SpvCapabilityLoopFuseINTEL: return "LoopFuseINTEL";
+ case SpvCapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL";
+ case SpvCapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
+ case SpvCapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
+ case SpvCapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
+ case SpvCapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
+ case SpvCapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL";
+ case SpvCapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
+ case SpvCapabilityIOPipesINTEL: return "IOPipesINTEL";
+ case SpvCapabilityBlockingPipesINTEL: return "BlockingPipesINTEL";
+ case SpvCapabilityFPGARegINTEL: return "FPGARegINTEL";
+ case SpvCapabilityDotProductInputAll: return "DotProductInputAll";
+ case SpvCapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit";
+ case SpvCapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
+ case SpvCapabilityDotProduct: return "DotProduct";
+ case SpvCapabilityRayCullMaskKHR: return "RayCullMaskKHR";
+ case SpvCapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
+ case SpvCapabilityBitInstructions: return "BitInstructions";
+ case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
+ case SpvCapabilityFloatControls2: return "FloatControls2";
+ case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
+ case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
+ case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL";
+ case SpvCapabilityOptNoneINTEL: return "OptNoneINTEL";
+ case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
+ case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
+ case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
+ case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
+ case SpvCapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
+ case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
+ case SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
+ case SpvCapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
+ case SpvCapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
+ case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
+ case SpvCapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
+ case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
+ case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
+ case SpvCapabilityCacheControlsINTEL: return "CacheControlsINTEL";
+ case SpvCapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvRayQueryIntersectionToString(SpvRayQueryIntersection value) {
+ switch (value) {
+ case SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
+ case SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvRayQueryCommittedIntersectionTypeToString(SpvRayQueryCommittedIntersectionType value) {
+ switch (value) {
+ case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
+ case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
+ case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvRayQueryCandidateIntersectionTypeToString(SpvRayQueryCandidateIntersectionType value) {
+ switch (value) {
+ case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
+ case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvFPDenormModeToString(SpvFPDenormMode value) {
+ switch (value) {
+ case SpvFPDenormModePreserve: return "Preserve";
+ case SpvFPDenormModeFlushToZero: return "FlushToZero";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvFPOperationModeToString(SpvFPOperationMode value) {
+ switch (value) {
+ case SpvFPOperationModeIEEE: return "IEEE";
+ case SpvFPOperationModeALT: return "ALT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvQuantizationModesToString(SpvQuantizationModes value) {
+ switch (value) {
+ case SpvQuantizationModesTRN: return "TRN";
+ case SpvQuantizationModesTRN_ZERO: return "TRN_ZERO";
+ case SpvQuantizationModesRND: return "RND";
+ case SpvQuantizationModesRND_ZERO: return "RND_ZERO";
+ case SpvQuantizationModesRND_INF: return "RND_INF";
+ case SpvQuantizationModesRND_MIN_INF: return "RND_MIN_INF";
+ case SpvQuantizationModesRND_CONV: return "RND_CONV";
+ case SpvQuantizationModesRND_CONV_ODD: return "RND_CONV_ODD";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvOverflowModesToString(SpvOverflowModes value) {
+ switch (value) {
+ case SpvOverflowModesWRAP: return "WRAP";
+ case SpvOverflowModesSAT: return "SAT";
+ case SpvOverflowModesSAT_ZERO: return "SAT_ZERO";
+ case SpvOverflowModesSAT_SYM: return "SAT_SYM";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvPackedVectorFormatToString(SpvPackedVectorFormat value) {
+ switch (value) {
+ case SpvPackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvCooperativeMatrixLayoutToString(SpvCooperativeMatrixLayout value) {
+ switch (value) {
+ case SpvCooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR";
+ case SpvCooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvCooperativeMatrixUseToString(SpvCooperativeMatrixUse value) {
+ switch (value) {
+ case SpvCooperativeMatrixUseMatrixAKHR: return "MatrixAKHR";
+ case SpvCooperativeMatrixUseMatrixBKHR: return "MatrixBKHR";
+ case SpvCooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value) {
+ switch (value) {
+ case SpvInitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
+ case SpvInitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvHostAccessQualifierToString(SpvHostAccessQualifier value) {
+ switch (value) {
+ case SpvHostAccessQualifierNoneINTEL: return "NoneINTEL";
+ case SpvHostAccessQualifierReadINTEL: return "ReadINTEL";
+ case SpvHostAccessQualifierWriteINTEL: return "WriteINTEL";
+ case SpvHostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvLoadCacheControlToString(SpvLoadCacheControl value) {
+ switch (value) {
+ case SpvLoadCacheControlUncachedINTEL: return "UncachedINTEL";
+ case SpvLoadCacheControlCachedINTEL: return "CachedINTEL";
+ case SpvLoadCacheControlStreamingINTEL: return "StreamingINTEL";
+ case SpvLoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
+ case SpvLoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvStoreCacheControlToString(SpvStoreCacheControl value) {
+ switch (value) {
+ case SpvStoreCacheControlUncachedINTEL: return "UncachedINTEL";
+ case SpvStoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
+ case SpvStoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
+ case SpvStoreCacheControlStreamingINTEL: return "StreamingINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value) {
+ switch (value) {
+ case SpvNamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SpvOpToString(SpvOp value) {
+ switch (value) {
+ case SpvOpNop: return "OpNop";
+ case SpvOpUndef: return "OpUndef";
+ case SpvOpSourceContinued: return "OpSourceContinued";
+ case SpvOpSource: return "OpSource";
+ case SpvOpSourceExtension: return "OpSourceExtension";
+ case SpvOpName: return "OpName";
+ case SpvOpMemberName: return "OpMemberName";
+ case SpvOpString: return "OpString";
+ case SpvOpLine: return "OpLine";
+ case SpvOpExtension: return "OpExtension";
+ case SpvOpExtInstImport: return "OpExtInstImport";
+ case SpvOpExtInst: return "OpExtInst";
+ case SpvOpMemoryModel: return "OpMemoryModel";
+ case SpvOpEntryPoint: return "OpEntryPoint";
+ case SpvOpExecutionMode: return "OpExecutionMode";
+ case SpvOpCapability: return "OpCapability";
+ case SpvOpTypeVoid: return "OpTypeVoid";
+ case SpvOpTypeBool: return "OpTypeBool";
+ case SpvOpTypeInt: return "OpTypeInt";
+ case SpvOpTypeFloat: return "OpTypeFloat";
+ case SpvOpTypeVector: return "OpTypeVector";
+ case SpvOpTypeMatrix: return "OpTypeMatrix";
+ case SpvOpTypeImage: return "OpTypeImage";
+ case SpvOpTypeSampler: return "OpTypeSampler";
+ case SpvOpTypeSampledImage: return "OpTypeSampledImage";
+ case SpvOpTypeArray: return "OpTypeArray";
+ case SpvOpTypeRuntimeArray: return "OpTypeRuntimeArray";
+ case SpvOpTypeStruct: return "OpTypeStruct";
+ case SpvOpTypeOpaque: return "OpTypeOpaque";
+ case SpvOpTypePointer: return "OpTypePointer";
+ case SpvOpTypeFunction: return "OpTypeFunction";
+ case SpvOpTypeEvent: return "OpTypeEvent";
+ case SpvOpTypeDeviceEvent: return "OpTypeDeviceEvent";
+ case SpvOpTypeReserveId: return "OpTypeReserveId";
+ case SpvOpTypeQueue: return "OpTypeQueue";
+ case SpvOpTypePipe: return "OpTypePipe";
+ case SpvOpTypeForwardPointer: return "OpTypeForwardPointer";
+ case SpvOpConstantTrue: return "OpConstantTrue";
+ case SpvOpConstantFalse: return "OpConstantFalse";
+ case SpvOpConstant: return "OpConstant";
+ case SpvOpConstantComposite: return "OpConstantComposite";
+ case SpvOpConstantSampler: return "OpConstantSampler";
+ case SpvOpConstantNull: return "OpConstantNull";
+ case SpvOpSpecConstantTrue: return "OpSpecConstantTrue";
+ case SpvOpSpecConstantFalse: return "OpSpecConstantFalse";
+ case SpvOpSpecConstant: return "OpSpecConstant";
+ case SpvOpSpecConstantComposite: return "OpSpecConstantComposite";
+ case SpvOpSpecConstantOp: return "OpSpecConstantOp";
+ case SpvOpFunction: return "OpFunction";
+ case SpvOpFunctionParameter: return "OpFunctionParameter";
+ case SpvOpFunctionEnd: return "OpFunctionEnd";
+ case SpvOpFunctionCall: return "OpFunctionCall";
+ case SpvOpVariable: return "OpVariable";
+ case SpvOpImageTexelPointer: return "OpImageTexelPointer";
+ case SpvOpLoad: return "OpLoad";
+ case SpvOpStore: return "OpStore";
+ case SpvOpCopyMemory: return "OpCopyMemory";
+ case SpvOpCopyMemorySized: return "OpCopyMemorySized";
+ case SpvOpAccessChain: return "OpAccessChain";
+ case SpvOpInBoundsAccessChain: return "OpInBoundsAccessChain";
+ case SpvOpPtrAccessChain: return "OpPtrAccessChain";
+ case SpvOpArrayLength: return "OpArrayLength";
+ case SpvOpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
+ case SpvOpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
+ case SpvOpDecorate: return "OpDecorate";
+ case SpvOpMemberDecorate: return "OpMemberDecorate";
+ case SpvOpDecorationGroup: return "OpDecorationGroup";
+ case SpvOpGroupDecorate: return "OpGroupDecorate";
+ case SpvOpGroupMemberDecorate: return "OpGroupMemberDecorate";
+ case SpvOpVectorExtractDynamic: return "OpVectorExtractDynamic";
+ case SpvOpVectorInsertDynamic: return "OpVectorInsertDynamic";
+ case SpvOpVectorShuffle: return "OpVectorShuffle";
+ case SpvOpCompositeConstruct: return "OpCompositeConstruct";
+ case SpvOpCompositeExtract: return "OpCompositeExtract";
+ case SpvOpCompositeInsert: return "OpCompositeInsert";
+ case SpvOpCopyObject: return "OpCopyObject";
+ case SpvOpTranspose: return "OpTranspose";
+ case SpvOpSampledImage: return "OpSampledImage";
+ case SpvOpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
+ case SpvOpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
+ case SpvOpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
+ case SpvOpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
+ case SpvOpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
+ case SpvOpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
+ case SpvOpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
+ case SpvOpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
+ case SpvOpImageFetch: return "OpImageFetch";
+ case SpvOpImageGather: return "OpImageGather";
+ case SpvOpImageDrefGather: return "OpImageDrefGather";
+ case SpvOpImageRead: return "OpImageRead";
+ case SpvOpImageWrite: return "OpImageWrite";
+ case SpvOpImage: return "OpImage";
+ case SpvOpImageQueryFormat: return "OpImageQueryFormat";
+ case SpvOpImageQueryOrder: return "OpImageQueryOrder";
+ case SpvOpImageQuerySizeLod: return "OpImageQuerySizeLod";
+ case SpvOpImageQuerySize: return "OpImageQuerySize";
+ case SpvOpImageQueryLod: return "OpImageQueryLod";
+ case SpvOpImageQueryLevels: return "OpImageQueryLevels";
+ case SpvOpImageQuerySamples: return "OpImageQuerySamples";
+ case SpvOpConvertFToU: return "OpConvertFToU";
+ case SpvOpConvertFToS: return "OpConvertFToS";
+ case SpvOpConvertSToF: return "OpConvertSToF";
+ case SpvOpConvertUToF: return "OpConvertUToF";
+ case SpvOpUConvert: return "OpUConvert";
+ case SpvOpSConvert: return "OpSConvert";
+ case SpvOpFConvert: return "OpFConvert";
+ case SpvOpQuantizeToF16: return "OpQuantizeToF16";
+ case SpvOpConvertPtrToU: return "OpConvertPtrToU";
+ case SpvOpSatConvertSToU: return "OpSatConvertSToU";
+ case SpvOpSatConvertUToS: return "OpSatConvertUToS";
+ case SpvOpConvertUToPtr: return "OpConvertUToPtr";
+ case SpvOpPtrCastToGeneric: return "OpPtrCastToGeneric";
+ case SpvOpGenericCastToPtr: return "OpGenericCastToPtr";
+ case SpvOpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
+ case SpvOpBitcast: return "OpBitcast";
+ case SpvOpSNegate: return "OpSNegate";
+ case SpvOpFNegate: return "OpFNegate";
+ case SpvOpIAdd: return "OpIAdd";
+ case SpvOpFAdd: return "OpFAdd";
+ case SpvOpISub: return "OpISub";
+ case SpvOpFSub: return "OpFSub";
+ case SpvOpIMul: return "OpIMul";
+ case SpvOpFMul: return "OpFMul";
+ case SpvOpUDiv: return "OpUDiv";
+ case SpvOpSDiv: return "OpSDiv";
+ case SpvOpFDiv: return "OpFDiv";
+ case SpvOpUMod: return "OpUMod";
+ case SpvOpSRem: return "OpSRem";
+ case SpvOpSMod: return "OpSMod";
+ case SpvOpFRem: return "OpFRem";
+ case SpvOpFMod: return "OpFMod";
+ case SpvOpVectorTimesScalar: return "OpVectorTimesScalar";
+ case SpvOpMatrixTimesScalar: return "OpMatrixTimesScalar";
+ case SpvOpVectorTimesMatrix: return "OpVectorTimesMatrix";
+ case SpvOpMatrixTimesVector: return "OpMatrixTimesVector";
+ case SpvOpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
+ case SpvOpOuterProduct: return "OpOuterProduct";
+ case SpvOpDot: return "OpDot";
+ case SpvOpIAddCarry: return "OpIAddCarry";
+ case SpvOpISubBorrow: return "OpISubBorrow";
+ case SpvOpUMulExtended: return "OpUMulExtended";
+ case SpvOpSMulExtended: return "OpSMulExtended";
+ case SpvOpAny: return "OpAny";
+ case SpvOpAll: return "OpAll";
+ case SpvOpIsNan: return "OpIsNan";
+ case SpvOpIsInf: return "OpIsInf";
+ case SpvOpIsFinite: return "OpIsFinite";
+ case SpvOpIsNormal: return "OpIsNormal";
+ case SpvOpSignBitSet: return "OpSignBitSet";
+ case SpvOpLessOrGreater: return "OpLessOrGreater";
+ case SpvOpOrdered: return "OpOrdered";
+ case SpvOpUnordered: return "OpUnordered";
+ case SpvOpLogicalEqual: return "OpLogicalEqual";
+ case SpvOpLogicalNotEqual: return "OpLogicalNotEqual";
+ case SpvOpLogicalOr: return "OpLogicalOr";
+ case SpvOpLogicalAnd: return "OpLogicalAnd";
+ case SpvOpLogicalNot: return "OpLogicalNot";
+ case SpvOpSelect: return "OpSelect";
+ case SpvOpIEqual: return "OpIEqual";
+ case SpvOpINotEqual: return "OpINotEqual";
+ case SpvOpUGreaterThan: return "OpUGreaterThan";
+ case SpvOpSGreaterThan: return "OpSGreaterThan";
+ case SpvOpUGreaterThanEqual: return "OpUGreaterThanEqual";
+ case SpvOpSGreaterThanEqual: return "OpSGreaterThanEqual";
+ case SpvOpULessThan: return "OpULessThan";
+ case SpvOpSLessThan: return "OpSLessThan";
+ case SpvOpULessThanEqual: return "OpULessThanEqual";
+ case SpvOpSLessThanEqual: return "OpSLessThanEqual";
+ case SpvOpFOrdEqual: return "OpFOrdEqual";
+ case SpvOpFUnordEqual: return "OpFUnordEqual";
+ case SpvOpFOrdNotEqual: return "OpFOrdNotEqual";
+ case SpvOpFUnordNotEqual: return "OpFUnordNotEqual";
+ case SpvOpFOrdLessThan: return "OpFOrdLessThan";
+ case SpvOpFUnordLessThan: return "OpFUnordLessThan";
+ case SpvOpFOrdGreaterThan: return "OpFOrdGreaterThan";
+ case SpvOpFUnordGreaterThan: return "OpFUnordGreaterThan";
+ case SpvOpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
+ case SpvOpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
+ case SpvOpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
+ case SpvOpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
+ case SpvOpShiftRightLogical: return "OpShiftRightLogical";
+ case SpvOpShiftRightArithmetic: return "OpShiftRightArithmetic";
+ case SpvOpShiftLeftLogical: return "OpShiftLeftLogical";
+ case SpvOpBitwiseOr: return "OpBitwiseOr";
+ case SpvOpBitwiseXor: return "OpBitwiseXor";
+ case SpvOpBitwiseAnd: return "OpBitwiseAnd";
+ case SpvOpNot: return "OpNot";
+ case SpvOpBitFieldInsert: return "OpBitFieldInsert";
+ case SpvOpBitFieldSExtract: return "OpBitFieldSExtract";
+ case SpvOpBitFieldUExtract: return "OpBitFieldUExtract";
+ case SpvOpBitReverse: return "OpBitReverse";
+ case SpvOpBitCount: return "OpBitCount";
+ case SpvOpDPdx: return "OpDPdx";
+ case SpvOpDPdy: return "OpDPdy";
+ case SpvOpFwidth: return "OpFwidth";
+ case SpvOpDPdxFine: return "OpDPdxFine";
+ case SpvOpDPdyFine: return "OpDPdyFine";
+ case SpvOpFwidthFine: return "OpFwidthFine";
+ case SpvOpDPdxCoarse: return "OpDPdxCoarse";
+ case SpvOpDPdyCoarse: return "OpDPdyCoarse";
+ case SpvOpFwidthCoarse: return "OpFwidthCoarse";
+ case SpvOpEmitVertex: return "OpEmitVertex";
+ case SpvOpEndPrimitive: return "OpEndPrimitive";
+ case SpvOpEmitStreamVertex: return "OpEmitStreamVertex";
+ case SpvOpEndStreamPrimitive: return "OpEndStreamPrimitive";
+ case SpvOpControlBarrier: return "OpControlBarrier";
+ case SpvOpMemoryBarrier: return "OpMemoryBarrier";
+ case SpvOpAtomicLoad: return "OpAtomicLoad";
+ case SpvOpAtomicStore: return "OpAtomicStore";
+ case SpvOpAtomicExchange: return "OpAtomicExchange";
+ case SpvOpAtomicCompareExchange: return "OpAtomicCompareExchange";
+ case SpvOpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
+ case SpvOpAtomicIIncrement: return "OpAtomicIIncrement";
+ case SpvOpAtomicIDecrement: return "OpAtomicIDecrement";
+ case SpvOpAtomicIAdd: return "OpAtomicIAdd";
+ case SpvOpAtomicISub: return "OpAtomicISub";
+ case SpvOpAtomicSMin: return "OpAtomicSMin";
+ case SpvOpAtomicUMin: return "OpAtomicUMin";
+ case SpvOpAtomicSMax: return "OpAtomicSMax";
+ case SpvOpAtomicUMax: return "OpAtomicUMax";
+ case SpvOpAtomicAnd: return "OpAtomicAnd";
+ case SpvOpAtomicOr: return "OpAtomicOr";
+ case SpvOpAtomicXor: return "OpAtomicXor";
+ case SpvOpPhi: return "OpPhi";
+ case SpvOpLoopMerge: return "OpLoopMerge";
+ case SpvOpSelectionMerge: return "OpSelectionMerge";
+ case SpvOpLabel: return "OpLabel";
+ case SpvOpBranch: return "OpBranch";
+ case SpvOpBranchConditional: return "OpBranchConditional";
+ case SpvOpSwitch: return "OpSwitch";
+ case SpvOpKill: return "OpKill";
+ case SpvOpReturn: return "OpReturn";
+ case SpvOpReturnValue: return "OpReturnValue";
+ case SpvOpUnreachable: return "OpUnreachable";
+ case SpvOpLifetimeStart: return "OpLifetimeStart";
+ case SpvOpLifetimeStop: return "OpLifetimeStop";
+ case SpvOpGroupAsyncCopy: return "OpGroupAsyncCopy";
+ case SpvOpGroupWaitEvents: return "OpGroupWaitEvents";
+ case SpvOpGroupAll: return "OpGroupAll";
+ case SpvOpGroupAny: return "OpGroupAny";
+ case SpvOpGroupBroadcast: return "OpGroupBroadcast";
+ case SpvOpGroupIAdd: return "OpGroupIAdd";
+ case SpvOpGroupFAdd: return "OpGroupFAdd";
+ case SpvOpGroupFMin: return "OpGroupFMin";
+ case SpvOpGroupUMin: return "OpGroupUMin";
+ case SpvOpGroupSMin: return "OpGroupSMin";
+ case SpvOpGroupFMax: return "OpGroupFMax";
+ case SpvOpGroupUMax: return "OpGroupUMax";
+ case SpvOpGroupSMax: return "OpGroupSMax";
+ case SpvOpReadPipe: return "OpReadPipe";
+ case SpvOpWritePipe: return "OpWritePipe";
+ case SpvOpReservedReadPipe: return "OpReservedReadPipe";
+ case SpvOpReservedWritePipe: return "OpReservedWritePipe";
+ case SpvOpReserveReadPipePackets: return "OpReserveReadPipePackets";
+ case SpvOpReserveWritePipePackets: return "OpReserveWritePipePackets";
+ case SpvOpCommitReadPipe: return "OpCommitReadPipe";
+ case SpvOpCommitWritePipe: return "OpCommitWritePipe";
+ case SpvOpIsValidReserveId: return "OpIsValidReserveId";
+ case SpvOpGetNumPipePackets: return "OpGetNumPipePackets";
+ case SpvOpGetMaxPipePackets: return "OpGetMaxPipePackets";
+ case SpvOpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
+ case SpvOpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
+ case SpvOpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
+ case SpvOpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
+ case SpvOpEnqueueMarker: return "OpEnqueueMarker";
+ case SpvOpEnqueueKernel: return "OpEnqueueKernel";
+ case SpvOpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
+ case SpvOpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
+ case SpvOpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
+ case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
+ case SpvOpRetainEvent: return "OpRetainEvent";
+ case SpvOpReleaseEvent: return "OpReleaseEvent";
+ case SpvOpCreateUserEvent: return "OpCreateUserEvent";
+ case SpvOpIsValidEvent: return "OpIsValidEvent";
+ case SpvOpSetUserEventStatus: return "OpSetUserEventStatus";
+ case SpvOpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
+ case SpvOpGetDefaultQueue: return "OpGetDefaultQueue";
+ case SpvOpBuildNDRange: return "OpBuildNDRange";
+ case SpvOpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
+ case SpvOpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
+ case SpvOpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
+ case SpvOpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
+ case SpvOpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
+ case SpvOpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
+ case SpvOpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
+ case SpvOpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
+ case SpvOpImageSparseFetch: return "OpImageSparseFetch";
+ case SpvOpImageSparseGather: return "OpImageSparseGather";
+ case SpvOpImageSparseDrefGather: return "OpImageSparseDrefGather";
+ case SpvOpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
+ case SpvOpNoLine: return "OpNoLine";
+ case SpvOpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
+ case SpvOpAtomicFlagClear: return "OpAtomicFlagClear";
+ case SpvOpImageSparseRead: return "OpImageSparseRead";
+ case SpvOpSizeOf: return "OpSizeOf";
+ case SpvOpTypePipeStorage: return "OpTypePipeStorage";
+ case SpvOpConstantPipeStorage: return "OpConstantPipeStorage";
+ case SpvOpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
+ case SpvOpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
+ case SpvOpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
+ case SpvOpTypeNamedBarrier: return "OpTypeNamedBarrier";
+ case SpvOpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
+ case SpvOpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
+ case SpvOpModuleProcessed: return "OpModuleProcessed";
+ case SpvOpExecutionModeId: return "OpExecutionModeId";
+ case SpvOpDecorateId: return "OpDecorateId";
+ case SpvOpGroupNonUniformElect: return "OpGroupNonUniformElect";
+ case SpvOpGroupNonUniformAll: return "OpGroupNonUniformAll";
+ case SpvOpGroupNonUniformAny: return "OpGroupNonUniformAny";
+ case SpvOpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
+ case SpvOpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
+ case SpvOpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
+ case SpvOpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
+ case SpvOpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
+ case SpvOpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
+ case SpvOpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
+ case SpvOpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
+ case SpvOpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
+ case SpvOpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
+ case SpvOpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
+ case SpvOpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
+ case SpvOpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
+ case SpvOpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
+ case SpvOpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
+ case SpvOpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
+ case SpvOpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
+ case SpvOpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
+ case SpvOpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
+ case SpvOpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
+ case SpvOpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
+ case SpvOpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
+ case SpvOpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
+ case SpvOpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
+ case SpvOpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
+ case SpvOpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
+ case SpvOpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
+ case SpvOpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
+ case SpvOpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
+ case SpvOpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
+ case SpvOpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
+ case SpvOpCopyLogical: return "OpCopyLogical";
+ case SpvOpPtrEqual: return "OpPtrEqual";
+ case SpvOpPtrNotEqual: return "OpPtrNotEqual";
+ case SpvOpPtrDiff: return "OpPtrDiff";
+ case SpvOpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
+ case SpvOpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
+ case SpvOpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
+ case SpvOpTerminateInvocation: return "OpTerminateInvocation";
+ case SpvOpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
+ case SpvOpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
+ case SpvOpSubgroupAllKHR: return "OpSubgroupAllKHR";
+ case SpvOpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
+ case SpvOpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
+ case SpvOpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
+ case SpvOpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
+ case SpvOpTraceRayKHR: return "OpTraceRayKHR";
+ case SpvOpExecuteCallableKHR: return "OpExecuteCallableKHR";
+ case SpvOpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
+ case SpvOpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
+ case SpvOpTerminateRayKHR: return "OpTerminateRayKHR";
+ case SpvOpSDot: return "OpSDot";
+ case SpvOpUDot: return "OpUDot";
+ case SpvOpSUDot: return "OpSUDot";
+ case SpvOpSDotAccSat: return "OpSDotAccSat";
+ case SpvOpUDotAccSat: return "OpUDotAccSat";
+ case SpvOpSUDotAccSat: return "OpSUDotAccSat";
+ case SpvOpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
+ case SpvOpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
+ case SpvOpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
+ case SpvOpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
+ case SpvOpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
+ case SpvOpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
+ case SpvOpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
+ case SpvOpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
+ case SpvOpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
+ case SpvOpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
+ case SpvOpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
+ case SpvOpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
+ case SpvOpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
+ case SpvOpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
+ case SpvOpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
+ case SpvOpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
+ case SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
+ case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
+ case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
+ case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
+ case SpvOpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
+ case SpvOpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
+ case SpvOpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
+ case SpvOpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
+ case SpvOpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
+ case SpvOpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
+ case SpvOpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
+ case SpvOpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
+ case SpvOpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
+ case SpvOpFragmentFetchAMD: return "OpFragmentFetchAMD";
+ case SpvOpReadClockKHR: return "OpReadClockKHR";
+ case SpvOpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX";
+ case SpvOpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
+ case SpvOpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX";
+ case SpvOpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
+ case SpvOpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
+ case SpvOpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
+ case SpvOpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
+ case SpvOpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
+ case SpvOpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
+ case SpvOpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
+ case SpvOpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
+ case SpvOpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
+ case SpvOpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
+ case SpvOpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
+ case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
+ case SpvOpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
+ case SpvOpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
+ case SpvOpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
+ case SpvOpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
+ case SpvOpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
+ case SpvOpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
+ case SpvOpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
+ case SpvOpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
+ case SpvOpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
+ case SpvOpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
+ case SpvOpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
+ case SpvOpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
+ case SpvOpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
+ case SpvOpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
+ case SpvOpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
+ case SpvOpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
+ case SpvOpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
+ case SpvOpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
+ case SpvOpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
+ case SpvOpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
+ case SpvOpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
+ case SpvOpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
+ case SpvOpTypeHitObjectNV: return "OpTypeHitObjectNV";
+ case SpvOpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
+ case SpvOpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
+ case SpvOpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
+ case SpvOpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
+ case SpvOpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
+ case SpvOpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
+ case SpvOpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
+ case SpvOpReportIntersectionKHR: return "OpReportIntersectionKHR";
+ case SpvOpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
+ case SpvOpTerminateRayNV: return "OpTerminateRayNV";
+ case SpvOpTraceNV: return "OpTraceNV";
+ case SpvOpTraceMotionNV: return "OpTraceMotionNV";
+ case SpvOpTraceRayMotionNV: return "OpTraceRayMotionNV";
+ case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
+ case SpvOpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
+ case SpvOpExecuteCallableNV: return "OpExecuteCallableNV";
+ case SpvOpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
+ case SpvOpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
+ case SpvOpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
+ case SpvOpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
+ case SpvOpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
+ case SpvOpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
+ case SpvOpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
+ case SpvOpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
+ case SpvOpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
+ case SpvOpConvertUToImageNV: return "OpConvertUToImageNV";
+ case SpvOpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
+ case SpvOpConvertImageToUNV: return "OpConvertImageToUNV";
+ case SpvOpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
+ case SpvOpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
+ case SpvOpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
+ case SpvOpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
+ case SpvOpRawAccessChainNV: return "OpRawAccessChainNV";
+ case SpvOpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
+ case SpvOpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
+ case SpvOpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
+ case SpvOpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
+ case SpvOpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
+ case SpvOpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
+ case SpvOpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
+ case SpvOpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
+ case SpvOpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
+ case SpvOpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
+ case SpvOpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
+ case SpvOpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
+ case SpvOpAbsISubINTEL: return "OpAbsISubINTEL";
+ case SpvOpAbsUSubINTEL: return "OpAbsUSubINTEL";
+ case SpvOpIAddSatINTEL: return "OpIAddSatINTEL";
+ case SpvOpUAddSatINTEL: return "OpUAddSatINTEL";
+ case SpvOpIAverageINTEL: return "OpIAverageINTEL";
+ case SpvOpUAverageINTEL: return "OpUAverageINTEL";
+ case SpvOpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
+ case SpvOpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
+ case SpvOpISubSatINTEL: return "OpISubSatINTEL";
+ case SpvOpUSubSatINTEL: return "OpUSubSatINTEL";
+ case SpvOpIMul32x16INTEL: return "OpIMul32x16INTEL";
+ case SpvOpUMul32x16INTEL: return "OpUMul32x16INTEL";
+ case SpvOpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
+ case SpvOpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
+ case SpvOpAsmTargetINTEL: return "OpAsmTargetINTEL";
+ case SpvOpAsmINTEL: return "OpAsmINTEL";
+ case SpvOpAsmCallINTEL: return "OpAsmCallINTEL";
+ case SpvOpAtomicFMinEXT: return "OpAtomicFMinEXT";
+ case SpvOpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
+ case SpvOpAssumeTrueKHR: return "OpAssumeTrueKHR";
+ case SpvOpExpectKHR: return "OpExpectKHR";
+ case SpvOpDecorateString: return "OpDecorateString";
+ case SpvOpMemberDecorateString: return "OpMemberDecorateString";
+ case SpvOpVmeImageINTEL: return "OpVmeImageINTEL";
+ case SpvOpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
+ case SpvOpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
+ case SpvOpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
+ case SpvOpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
+ case SpvOpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
+ case SpvOpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
+ case SpvOpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
+ case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
+ case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
+ case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
+ case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
+ case SpvOpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
+ case SpvOpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
+ case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
+ case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
+ case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
+ case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
+ case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
+ case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
+ case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
+ case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
+ case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
+ case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
+ case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
+ case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
+ case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
+ case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
+ case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
+ case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
+ case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
+ case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
+ case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
+ case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
+ case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
+ case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
+ case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
+ case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
+ case SpvOpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
+ case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
+ case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
+ case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
+ case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
+ case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
+ case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
+ case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
+ case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
+ case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
+ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
+ case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
+ case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
+ case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
+ case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
+ case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
+ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
+ case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
+ case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
+ case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
+ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
+ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
+ case SpvOpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
+ case SpvOpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
+ case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
+ case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
+ case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
+ case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
+ case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
+ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
+ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
+ case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
+ case SpvOpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
+ case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
+ case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
+ case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
+ case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
+ case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
+ case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
+ case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
+ case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
+ case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
+ case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
+ case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
+ case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
+ case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
+ case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
+ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
+ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
+ case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
+ case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
+ case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
+ case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
+ case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
+ case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
+ case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
+ case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
+ case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
+ case SpvOpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
+ case SpvOpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
+ case SpvOpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
+ case SpvOpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
+ case SpvOpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
+ case SpvOpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
+ case SpvOpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
+ case SpvOpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
+ case SpvOpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
+ case SpvOpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
+ case SpvOpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
+ case SpvOpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
+ case SpvOpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
+ case SpvOpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
+ case SpvOpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
+ case SpvOpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
+ case SpvOpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
+ case SpvOpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
+ case SpvOpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
+ case SpvOpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
+ case SpvOpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
+ case SpvOpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
+ case SpvOpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
+ case SpvOpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
+ case SpvOpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
+ case SpvOpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
+ case SpvOpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
+ case SpvOpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
+ case SpvOpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
+ case SpvOpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
+ case SpvOpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
+ case SpvOpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
+ case SpvOpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
+ case SpvOpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
+ case SpvOpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
+ case SpvOpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
+ case SpvOpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
+ case SpvOpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
+ case SpvOpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
+ case SpvOpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
+ case SpvOpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
+ case SpvOpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
+ case SpvOpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
+ case SpvOpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
+ case SpvOpLoopControlINTEL: return "OpLoopControlINTEL";
+ case SpvOpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
+ case SpvOpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
+ case SpvOpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
+ case SpvOpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
+ case SpvOpFixedRecipINTEL: return "OpFixedRecipINTEL";
+ case SpvOpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
+ case SpvOpFixedSinINTEL: return "OpFixedSinINTEL";
+ case SpvOpFixedCosINTEL: return "OpFixedCosINTEL";
+ case SpvOpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
+ case SpvOpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
+ case SpvOpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
+ case SpvOpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
+ case SpvOpFixedLogINTEL: return "OpFixedLogINTEL";
+ case SpvOpFixedExpINTEL: return "OpFixedExpINTEL";
+ case SpvOpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
+ case SpvOpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
+ case SpvOpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
+ case SpvOpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
+ case SpvOpFPGARegINTEL: return "OpFPGARegINTEL";
+ case SpvOpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
+ case SpvOpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
+ case SpvOpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
+ case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
+ case SpvOpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
+ case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
+ case SpvOpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
+ case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
+ case SpvOpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
+ case SpvOpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
+ case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
+ case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
+ case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
+ case SpvOpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
+ case SpvOpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
+ case SpvOpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
+ case SpvOpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
+ case SpvOpAtomicFAddEXT: return "OpAtomicFAddEXT";
+ case SpvOpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
+ case SpvOpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
+ case SpvOpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
+ case SpvOpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
+ case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
+ case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
+ case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
+ case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
+ case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
+ case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
+ case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
+ case SpvOpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
+ case SpvOpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
+ case SpvOpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
+ case SpvOpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
+ case SpvOpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
+ case SpvOpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
+ case SpvOpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
+ default: return "Unknown";
+ }
+}
+
#endif /* SPV_ENABLE_UTILITY_CODE */
#endif
diff --git a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp
index a383739fef..21b8656898 100644
--- a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp
+++ b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp
@@ -2884,6 +2884,1779 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
}
}
+inline const char* SourceLanguageToString(SourceLanguage value) {
+ switch (value) {
+ case SourceLanguageUnknown: return "Unknown";
+ case SourceLanguageESSL: return "ESSL";
+ case SourceLanguageGLSL: return "GLSL";
+ case SourceLanguageOpenCL_C: return "OpenCL_C";
+ case SourceLanguageOpenCL_CPP: return "OpenCL_CPP";
+ case SourceLanguageHLSL: return "HLSL";
+ case SourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
+ case SourceLanguageSYCL: return "SYCL";
+ case SourceLanguageHERO_C: return "HERO_C";
+ case SourceLanguageNZSL: return "NZSL";
+ case SourceLanguageWGSL: return "WGSL";
+ case SourceLanguageSlang: return "Slang";
+ case SourceLanguageZig: return "Zig";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ExecutionModelToString(ExecutionModel value) {
+ switch (value) {
+ case ExecutionModelVertex: return "Vertex";
+ case ExecutionModelTessellationControl: return "TessellationControl";
+ case ExecutionModelTessellationEvaluation: return "TessellationEvaluation";
+ case ExecutionModelGeometry: return "Geometry";
+ case ExecutionModelFragment: return "Fragment";
+ case ExecutionModelGLCompute: return "GLCompute";
+ case ExecutionModelKernel: return "Kernel";
+ case ExecutionModelTaskNV: return "TaskNV";
+ case ExecutionModelMeshNV: return "MeshNV";
+ case ExecutionModelRayGenerationKHR: return "RayGenerationKHR";
+ case ExecutionModelIntersectionKHR: return "IntersectionKHR";
+ case ExecutionModelAnyHitKHR: return "AnyHitKHR";
+ case ExecutionModelClosestHitKHR: return "ClosestHitKHR";
+ case ExecutionModelMissKHR: return "MissKHR";
+ case ExecutionModelCallableKHR: return "CallableKHR";
+ case ExecutionModelTaskEXT: return "TaskEXT";
+ case ExecutionModelMeshEXT: return "MeshEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* AddressingModelToString(AddressingModel value) {
+ switch (value) {
+ case AddressingModelLogical: return "Logical";
+ case AddressingModelPhysical32: return "Physical32";
+ case AddressingModelPhysical64: return "Physical64";
+ case AddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
+ default: return "Unknown";
+ }
+}
+
+inline const char* MemoryModelToString(MemoryModel value) {
+ switch (value) {
+ case MemoryModelSimple: return "Simple";
+ case MemoryModelGLSL450: return "GLSL450";
+ case MemoryModelOpenCL: return "OpenCL";
+ case MemoryModelVulkan: return "Vulkan";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ExecutionModeToString(ExecutionMode value) {
+ switch (value) {
+ case ExecutionModeInvocations: return "Invocations";
+ case ExecutionModeSpacingEqual: return "SpacingEqual";
+ case ExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
+ case ExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
+ case ExecutionModeVertexOrderCw: return "VertexOrderCw";
+ case ExecutionModeVertexOrderCcw: return "VertexOrderCcw";
+ case ExecutionModePixelCenterInteger: return "PixelCenterInteger";
+ case ExecutionModeOriginUpperLeft: return "OriginUpperLeft";
+ case ExecutionModeOriginLowerLeft: return "OriginLowerLeft";
+ case ExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
+ case ExecutionModePointMode: return "PointMode";
+ case ExecutionModeXfb: return "Xfb";
+ case ExecutionModeDepthReplacing: return "DepthReplacing";
+ case ExecutionModeDepthGreater: return "DepthGreater";
+ case ExecutionModeDepthLess: return "DepthLess";
+ case ExecutionModeDepthUnchanged: return "DepthUnchanged";
+ case ExecutionModeLocalSize: return "LocalSize";
+ case ExecutionModeLocalSizeHint: return "LocalSizeHint";
+ case ExecutionModeInputPoints: return "InputPoints";
+ case ExecutionModeInputLines: return "InputLines";
+ case ExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
+ case ExecutionModeTriangles: return "Triangles";
+ case ExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
+ case ExecutionModeQuads: return "Quads";
+ case ExecutionModeIsolines: return "Isolines";
+ case ExecutionModeOutputVertices: return "OutputVertices";
+ case ExecutionModeOutputPoints: return "OutputPoints";
+ case ExecutionModeOutputLineStrip: return "OutputLineStrip";
+ case ExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
+ case ExecutionModeVecTypeHint: return "VecTypeHint";
+ case ExecutionModeContractionOff: return "ContractionOff";
+ case ExecutionModeInitializer: return "Initializer";
+ case ExecutionModeFinalizer: return "Finalizer";
+ case ExecutionModeSubgroupSize: return "SubgroupSize";
+ case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
+ case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
+ case ExecutionModeLocalSizeId: return "LocalSizeId";
+ case ExecutionModeLocalSizeHintId: return "LocalSizeHintId";
+ case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
+ case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
+ case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
+ case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
+ case ExecutionModePostDepthCoverage: return "PostDepthCoverage";
+ case ExecutionModeDenormPreserve: return "DenormPreserve";
+ case ExecutionModeDenormFlushToZero: return "DenormFlushToZero";
+ case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case ExecutionModeRoundingModeRTE: return "RoundingModeRTE";
+ case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
+ case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
+ case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
+ case ExecutionModeCoalescingAMDX: return "CoalescingAMDX";
+ case ExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
+ case ExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
+ case ExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
+ case ExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
+ case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
+ case ExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
+ case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
+ case ExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
+ case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
+ case ExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
+ case ExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
+ case ExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
+ case ExecutionModeOutputLinesEXT: return "OutputLinesEXT";
+ case ExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
+ case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV";
+ case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
+ case ExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
+ case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
+ case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
+ case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
+ case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
+ case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
+ case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
+ case ExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
+ case ExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
+ case ExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
+ case ExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
+ case ExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
+ case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
+ case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
+ case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
+ case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
+ case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
+ case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
+ case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+ case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
+ case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
+ case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
+ case ExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
+ case ExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
+ case ExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* StorageClassToString(StorageClass value) {
+ switch (value) {
+ case StorageClassUniformConstant: return "UniformConstant";
+ case StorageClassInput: return "Input";
+ case StorageClassUniform: return "Uniform";
+ case StorageClassOutput: return "Output";
+ case StorageClassWorkgroup: return "Workgroup";
+ case StorageClassCrossWorkgroup: return "CrossWorkgroup";
+ case StorageClassPrivate: return "Private";
+ case StorageClassFunction: return "Function";
+ case StorageClassGeneric: return "Generic";
+ case StorageClassPushConstant: return "PushConstant";
+ case StorageClassAtomicCounter: return "AtomicCounter";
+ case StorageClassImage: return "Image";
+ case StorageClassStorageBuffer: return "StorageBuffer";
+ case StorageClassTileImageEXT: return "TileImageEXT";
+ case StorageClassNodePayloadAMDX: return "NodePayloadAMDX";
+ case StorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX";
+ case StorageClassCallableDataKHR: return "CallableDataKHR";
+ case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
+ case StorageClassRayPayloadKHR: return "RayPayloadKHR";
+ case StorageClassHitAttributeKHR: return "HitAttributeKHR";
+ case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
+ case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
+ case StorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
+ case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
+ case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
+ case StorageClassCodeSectionINTEL: return "CodeSectionINTEL";
+ case StorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL";
+ case StorageClassHostOnlyINTEL: return "HostOnlyINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* DimToString(Dim value) {
+ switch (value) {
+ case Dim1D: return "1D";
+ case Dim2D: return "2D";
+ case Dim3D: return "3D";
+ case DimCube: return "Cube";
+ case DimRect: return "Rect";
+ case DimBuffer: return "Buffer";
+ case DimSubpassData: return "SubpassData";
+ case DimTileImageDataEXT: return "TileImageDataEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) {
+ switch (value) {
+ case SamplerAddressingModeNone: return "None";
+ case SamplerAddressingModeClampToEdge: return "ClampToEdge";
+ case SamplerAddressingModeClamp: return "Clamp";
+ case SamplerAddressingModeRepeat: return "Repeat";
+ case SamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SamplerFilterModeToString(SamplerFilterMode value) {
+ switch (value) {
+ case SamplerFilterModeNearest: return "Nearest";
+ case SamplerFilterModeLinear: return "Linear";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageFormatToString(ImageFormat value) {
+ switch (value) {
+ case ImageFormatUnknown: return "Unknown";
+ case ImageFormatRgba32f: return "Rgba32f";
+ case ImageFormatRgba16f: return "Rgba16f";
+ case ImageFormatR32f: return "R32f";
+ case ImageFormatRgba8: return "Rgba8";
+ case ImageFormatRgba8Snorm: return "Rgba8Snorm";
+ case ImageFormatRg32f: return "Rg32f";
+ case ImageFormatRg16f: return "Rg16f";
+ case ImageFormatR11fG11fB10f: return "R11fG11fB10f";
+ case ImageFormatR16f: return "R16f";
+ case ImageFormatRgba16: return "Rgba16";
+ case ImageFormatRgb10A2: return "Rgb10A2";
+ case ImageFormatRg16: return "Rg16";
+ case ImageFormatRg8: return "Rg8";
+ case ImageFormatR16: return "R16";
+ case ImageFormatR8: return "R8";
+ case ImageFormatRgba16Snorm: return "Rgba16Snorm";
+ case ImageFormatRg16Snorm: return "Rg16Snorm";
+ case ImageFormatRg8Snorm: return "Rg8Snorm";
+ case ImageFormatR16Snorm: return "R16Snorm";
+ case ImageFormatR8Snorm: return "R8Snorm";
+ case ImageFormatRgba32i: return "Rgba32i";
+ case ImageFormatRgba16i: return "Rgba16i";
+ case ImageFormatRgba8i: return "Rgba8i";
+ case ImageFormatR32i: return "R32i";
+ case ImageFormatRg32i: return "Rg32i";
+ case ImageFormatRg16i: return "Rg16i";
+ case ImageFormatRg8i: return "Rg8i";
+ case ImageFormatR16i: return "R16i";
+ case ImageFormatR8i: return "R8i";
+ case ImageFormatRgba32ui: return "Rgba32ui";
+ case ImageFormatRgba16ui: return "Rgba16ui";
+ case ImageFormatRgba8ui: return "Rgba8ui";
+ case ImageFormatR32ui: return "R32ui";
+ case ImageFormatRgb10a2ui: return "Rgb10a2ui";
+ case ImageFormatRg32ui: return "Rg32ui";
+ case ImageFormatRg16ui: return "Rg16ui";
+ case ImageFormatRg8ui: return "Rg8ui";
+ case ImageFormatR16ui: return "R16ui";
+ case ImageFormatR8ui: return "R8ui";
+ case ImageFormatR64ui: return "R64ui";
+ case ImageFormatR64i: return "R64i";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageChannelOrderToString(ImageChannelOrder value) {
+ switch (value) {
+ case ImageChannelOrderR: return "R";
+ case ImageChannelOrderA: return "A";
+ case ImageChannelOrderRG: return "RG";
+ case ImageChannelOrderRA: return "RA";
+ case ImageChannelOrderRGB: return "RGB";
+ case ImageChannelOrderRGBA: return "RGBA";
+ case ImageChannelOrderBGRA: return "BGRA";
+ case ImageChannelOrderARGB: return "ARGB";
+ case ImageChannelOrderIntensity: return "Intensity";
+ case ImageChannelOrderLuminance: return "Luminance";
+ case ImageChannelOrderRx: return "Rx";
+ case ImageChannelOrderRGx: return "RGx";
+ case ImageChannelOrderRGBx: return "RGBx";
+ case ImageChannelOrderDepth: return "Depth";
+ case ImageChannelOrderDepthStencil: return "DepthStencil";
+ case ImageChannelOrdersRGB: return "sRGB";
+ case ImageChannelOrdersRGBx: return "sRGBx";
+ case ImageChannelOrdersRGBA: return "sRGBA";
+ case ImageChannelOrdersBGRA: return "sBGRA";
+ case ImageChannelOrderABGR: return "ABGR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) {
+ switch (value) {
+ case ImageChannelDataTypeSnormInt8: return "SnormInt8";
+ case ImageChannelDataTypeSnormInt16: return "SnormInt16";
+ case ImageChannelDataTypeUnormInt8: return "UnormInt8";
+ case ImageChannelDataTypeUnormInt16: return "UnormInt16";
+ case ImageChannelDataTypeUnormShort565: return "UnormShort565";
+ case ImageChannelDataTypeUnormShort555: return "UnormShort555";
+ case ImageChannelDataTypeUnormInt101010: return "UnormInt101010";
+ case ImageChannelDataTypeSignedInt8: return "SignedInt8";
+ case ImageChannelDataTypeSignedInt16: return "SignedInt16";
+ case ImageChannelDataTypeSignedInt32: return "SignedInt32";
+ case ImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
+ case ImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
+ case ImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
+ case ImageChannelDataTypeHalfFloat: return "HalfFloat";
+ case ImageChannelDataTypeFloat: return "Float";
+ case ImageChannelDataTypeUnormInt24: return "UnormInt24";
+ case ImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
+ case ImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
+ case ImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPRoundingModeToString(FPRoundingMode value) {
+ switch (value) {
+ case FPRoundingModeRTE: return "RTE";
+ case FPRoundingModeRTZ: return "RTZ";
+ case FPRoundingModeRTP: return "RTP";
+ case FPRoundingModeRTN: return "RTN";
+ default: return "Unknown";
+ }
+}
+
+inline const char* LinkageTypeToString(LinkageType value) {
+ switch (value) {
+ case LinkageTypeExport: return "Export";
+ case LinkageTypeImport: return "Import";
+ case LinkageTypeLinkOnceODR: return "LinkOnceODR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* AccessQualifierToString(AccessQualifier value) {
+ switch (value) {
+ case AccessQualifierReadOnly: return "ReadOnly";
+ case AccessQualifierWriteOnly: return "WriteOnly";
+ case AccessQualifierReadWrite: return "ReadWrite";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) {
+ switch (value) {
+ case FunctionParameterAttributeZext: return "Zext";
+ case FunctionParameterAttributeSext: return "Sext";
+ case FunctionParameterAttributeByVal: return "ByVal";
+ case FunctionParameterAttributeSret: return "Sret";
+ case FunctionParameterAttributeNoAlias: return "NoAlias";
+ case FunctionParameterAttributeNoCapture: return "NoCapture";
+ case FunctionParameterAttributeNoWrite: return "NoWrite";
+ case FunctionParameterAttributeNoReadWrite: return "NoReadWrite";
+ case FunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* DecorationToString(Decoration value) {
+ switch (value) {
+ case DecorationRelaxedPrecision: return "RelaxedPrecision";
+ case DecorationSpecId: return "SpecId";
+ case DecorationBlock: return "Block";
+ case DecorationBufferBlock: return "BufferBlock";
+ case DecorationRowMajor: return "RowMajor";
+ case DecorationColMajor: return "ColMajor";
+ case DecorationArrayStride: return "ArrayStride";
+ case DecorationMatrixStride: return "MatrixStride";
+ case DecorationGLSLShared: return "GLSLShared";
+ case DecorationGLSLPacked: return "GLSLPacked";
+ case DecorationCPacked: return "CPacked";
+ case DecorationBuiltIn: return "BuiltIn";
+ case DecorationNoPerspective: return "NoPerspective";
+ case DecorationFlat: return "Flat";
+ case DecorationPatch: return "Patch";
+ case DecorationCentroid: return "Centroid";
+ case DecorationSample: return "Sample";
+ case DecorationInvariant: return "Invariant";
+ case DecorationRestrict: return "Restrict";
+ case DecorationAliased: return "Aliased";
+ case DecorationVolatile: return "Volatile";
+ case DecorationConstant: return "Constant";
+ case DecorationCoherent: return "Coherent";
+ case DecorationNonWritable: return "NonWritable";
+ case DecorationNonReadable: return "NonReadable";
+ case DecorationUniform: return "Uniform";
+ case DecorationUniformId: return "UniformId";
+ case DecorationSaturatedConversion: return "SaturatedConversion";
+ case DecorationStream: return "Stream";
+ case DecorationLocation: return "Location";
+ case DecorationComponent: return "Component";
+ case DecorationIndex: return "Index";
+ case DecorationBinding: return "Binding";
+ case DecorationDescriptorSet: return "DescriptorSet";
+ case DecorationOffset: return "Offset";
+ case DecorationXfbBuffer: return "XfbBuffer";
+ case DecorationXfbStride: return "XfbStride";
+ case DecorationFuncParamAttr: return "FuncParamAttr";
+ case DecorationFPRoundingMode: return "FPRoundingMode";
+ case DecorationFPFastMathMode: return "FPFastMathMode";
+ case DecorationLinkageAttributes: return "LinkageAttributes";
+ case DecorationNoContraction: return "NoContraction";
+ case DecorationInputAttachmentIndex: return "InputAttachmentIndex";
+ case DecorationAlignment: return "Alignment";
+ case DecorationMaxByteOffset: return "MaxByteOffset";
+ case DecorationAlignmentId: return "AlignmentId";
+ case DecorationMaxByteOffsetId: return "MaxByteOffsetId";
+ case DecorationNoSignedWrap: return "NoSignedWrap";
+ case DecorationNoUnsignedWrap: return "NoUnsignedWrap";
+ case DecorationWeightTextureQCOM: return "WeightTextureQCOM";
+ case DecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
+ case DecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
+ case DecorationExplicitInterpAMD: return "ExplicitInterpAMD";
+ case DecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
+ case DecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
+ case DecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
+ case DecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
+ case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
+ case DecorationPassthroughNV: return "PassthroughNV";
+ case DecorationViewportRelativeNV: return "ViewportRelativeNV";
+ case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
+ case DecorationPerPrimitiveEXT: return "PerPrimitiveEXT";
+ case DecorationPerViewNV: return "PerViewNV";
+ case DecorationPerTaskNV: return "PerTaskNV";
+ case DecorationPerVertexKHR: return "PerVertexKHR";
+ case DecorationNonUniform: return "NonUniform";
+ case DecorationRestrictPointer: return "RestrictPointer";
+ case DecorationAliasedPointer: return "AliasedPointer";
+ case DecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
+ case DecorationBindlessSamplerNV: return "BindlessSamplerNV";
+ case DecorationBindlessImageNV: return "BindlessImageNV";
+ case DecorationBoundSamplerNV: return "BoundSamplerNV";
+ case DecorationBoundImageNV: return "BoundImageNV";
+ case DecorationSIMTCallINTEL: return "SIMTCallINTEL";
+ case DecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
+ case DecorationClobberINTEL: return "ClobberINTEL";
+ case DecorationSideEffectsINTEL: return "SideEffectsINTEL";
+ case DecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
+ case DecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
+ case DecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
+ case DecorationStackCallINTEL: return "StackCallINTEL";
+ case DecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
+ case DecorationCounterBuffer: return "CounterBuffer";
+ case DecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
+ case DecorationUserTypeGOOGLE: return "UserTypeGOOGLE";
+ case DecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
+ case DecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
+ case DecorationRegisterINTEL: return "RegisterINTEL";
+ case DecorationMemoryINTEL: return "MemoryINTEL";
+ case DecorationNumbanksINTEL: return "NumbanksINTEL";
+ case DecorationBankwidthINTEL: return "BankwidthINTEL";
+ case DecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
+ case DecorationSinglepumpINTEL: return "SinglepumpINTEL";
+ case DecorationDoublepumpINTEL: return "DoublepumpINTEL";
+ case DecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL";
+ case DecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL";
+ case DecorationMergeINTEL: return "MergeINTEL";
+ case DecorationBankBitsINTEL: return "BankBitsINTEL";
+ case DecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
+ case DecorationStridesizeINTEL: return "StridesizeINTEL";
+ case DecorationWordsizeINTEL: return "WordsizeINTEL";
+ case DecorationTrueDualPortINTEL: return "TrueDualPortINTEL";
+ case DecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL";
+ case DecorationCacheSizeINTEL: return "CacheSizeINTEL";
+ case DecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
+ case DecorationPrefetchINTEL: return "PrefetchINTEL";
+ case DecorationStallEnableINTEL: return "StallEnableINTEL";
+ case DecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
+ case DecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
+ case DecorationAliasScopeINTEL: return "AliasScopeINTEL";
+ case DecorationNoAliasINTEL: return "NoAliasINTEL";
+ case DecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL";
+ case DecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
+ case DecorationPipelineEnableINTEL: return "PipelineEnableINTEL";
+ case DecorationBufferLocationINTEL: return "BufferLocationINTEL";
+ case DecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL";
+ case DecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
+ case DecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
+ case DecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
+ case DecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
+ case DecorationStallFreeINTEL: return "StallFreeINTEL";
+ case DecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
+ case DecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
+ case DecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
+ case DecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
+ case DecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
+ case DecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
+ case DecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
+ case DecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
+ case DecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
+ case DecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
+ case DecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
+ case DecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
+ case DecorationHostAccessINTEL: return "HostAccessINTEL";
+ case DecorationInitModeINTEL: return "InitModeINTEL";
+ case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
+ case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
+ case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* BuiltInToString(BuiltIn value) {
+ switch (value) {
+ case BuiltInPosition: return "Position";
+ case BuiltInPointSize: return "PointSize";
+ case BuiltInClipDistance: return "ClipDistance";
+ case BuiltInCullDistance: return "CullDistance";
+ case BuiltInVertexId: return "VertexId";
+ case BuiltInInstanceId: return "InstanceId";
+ case BuiltInPrimitiveId: return "PrimitiveId";
+ case BuiltInInvocationId: return "InvocationId";
+ case BuiltInLayer: return "Layer";
+ case BuiltInViewportIndex: return "ViewportIndex";
+ case BuiltInTessLevelOuter: return "TessLevelOuter";
+ case BuiltInTessLevelInner: return "TessLevelInner";
+ case BuiltInTessCoord: return "TessCoord";
+ case BuiltInPatchVertices: return "PatchVertices";
+ case BuiltInFragCoord: return "FragCoord";
+ case BuiltInPointCoord: return "PointCoord";
+ case BuiltInFrontFacing: return "FrontFacing";
+ case BuiltInSampleId: return "SampleId";
+ case BuiltInSamplePosition: return "SamplePosition";
+ case BuiltInSampleMask: return "SampleMask";
+ case BuiltInFragDepth: return "FragDepth";
+ case BuiltInHelperInvocation: return "HelperInvocation";
+ case BuiltInNumWorkgroups: return "NumWorkgroups";
+ case BuiltInWorkgroupSize: return "WorkgroupSize";
+ case BuiltInWorkgroupId: return "WorkgroupId";
+ case BuiltInLocalInvocationId: return "LocalInvocationId";
+ case BuiltInGlobalInvocationId: return "GlobalInvocationId";
+ case BuiltInLocalInvocationIndex: return "LocalInvocationIndex";
+ case BuiltInWorkDim: return "WorkDim";
+ case BuiltInGlobalSize: return "GlobalSize";
+ case BuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
+ case BuiltInGlobalOffset: return "GlobalOffset";
+ case BuiltInGlobalLinearId: return "GlobalLinearId";
+ case BuiltInSubgroupSize: return "SubgroupSize";
+ case BuiltInSubgroupMaxSize: return "SubgroupMaxSize";
+ case BuiltInNumSubgroups: return "NumSubgroups";
+ case BuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
+ case BuiltInSubgroupId: return "SubgroupId";
+ case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
+ case BuiltInVertexIndex: return "VertexIndex";
+ case BuiltInInstanceIndex: return "InstanceIndex";
+ case BuiltInCoreIDARM: return "CoreIDARM";
+ case BuiltInCoreCountARM: return "CoreCountARM";
+ case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
+ case BuiltInWarpIDARM: return "WarpIDARM";
+ case BuiltInWarpMaxIDARM: return "WarpMaxIDARM";
+ case BuiltInSubgroupEqMask: return "SubgroupEqMask";
+ case BuiltInSubgroupGeMask: return "SubgroupGeMask";
+ case BuiltInSubgroupGtMask: return "SubgroupGtMask";
+ case BuiltInSubgroupLeMask: return "SubgroupLeMask";
+ case BuiltInSubgroupLtMask: return "SubgroupLtMask";
+ case BuiltInBaseVertex: return "BaseVertex";
+ case BuiltInBaseInstance: return "BaseInstance";
+ case BuiltInDrawIndex: return "DrawIndex";
+ case BuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
+ case BuiltInDeviceIndex: return "DeviceIndex";
+ case BuiltInViewIndex: return "ViewIndex";
+ case BuiltInShadingRateKHR: return "ShadingRateKHR";
+ case BuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
+ case BuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
+ case BuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
+ case BuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
+ case BuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
+ case BuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
+ case BuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
+ case BuiltInFragStencilRefEXT: return "FragStencilRefEXT";
+ case BuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX";
+ case BuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
+ case BuiltInViewportMaskNV: return "ViewportMaskNV";
+ case BuiltInSecondaryPositionNV: return "SecondaryPositionNV";
+ case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
+ case BuiltInPositionPerViewNV: return "PositionPerViewNV";
+ case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
+ case BuiltInFullyCoveredEXT: return "FullyCoveredEXT";
+ case BuiltInTaskCountNV: return "TaskCountNV";
+ case BuiltInPrimitiveCountNV: return "PrimitiveCountNV";
+ case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
+ case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
+ case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
+ case BuiltInLayerPerViewNV: return "LayerPerViewNV";
+ case BuiltInMeshViewCountNV: return "MeshViewCountNV";
+ case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
+ case BuiltInBaryCoordKHR: return "BaryCoordKHR";
+ case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
+ case BuiltInFragSizeEXT: return "FragSizeEXT";
+ case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
+ case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
+ case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
+ case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
+ case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
+ case BuiltInLaunchIdKHR: return "LaunchIdKHR";
+ case BuiltInLaunchSizeKHR: return "LaunchSizeKHR";
+ case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
+ case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
+ case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
+ case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
+ case BuiltInRayTminKHR: return "RayTminKHR";
+ case BuiltInRayTmaxKHR: return "RayTmaxKHR";
+ case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
+ case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
+ case BuiltInWorldToObjectKHR: return "WorldToObjectKHR";
+ case BuiltInHitTNV: return "HitTNV";
+ case BuiltInHitKindKHR: return "HitKindKHR";
+ case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
+ case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
+ case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
+ case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
+ case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
+ case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
+ case BuiltInWarpsPerSMNV: return "WarpsPerSMNV";
+ case BuiltInSMCountNV: return "SMCountNV";
+ case BuiltInWarpIDNV: return "WarpIDNV";
+ case BuiltInSMIDNV: return "SMIDNV";
+ case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
+ case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
+ case BuiltInCullMaskKHR: return "CullMaskKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ScopeToString(Scope value) {
+ switch (value) {
+ case ScopeCrossDevice: return "CrossDevice";
+ case ScopeDevice: return "Device";
+ case ScopeWorkgroup: return "Workgroup";
+ case ScopeSubgroup: return "Subgroup";
+ case ScopeInvocation: return "Invocation";
+ case ScopeQueueFamily: return "QueueFamily";
+ case ScopeShaderCallKHR: return "ShaderCallKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* GroupOperationToString(GroupOperation value) {
+ switch (value) {
+ case GroupOperationReduce: return "Reduce";
+ case GroupOperationInclusiveScan: return "InclusiveScan";
+ case GroupOperationExclusiveScan: return "ExclusiveScan";
+ case GroupOperationClusteredReduce: return "ClusteredReduce";
+ case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV";
+ case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
+ case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
+ default: return "Unknown";
+ }
+}
+
+inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) {
+ switch (value) {
+ case KernelEnqueueFlagsNoWait: return "NoWait";
+ case KernelEnqueueFlagsWaitKernel: return "WaitKernel";
+ case KernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CapabilityToString(Capability value) {
+ switch (value) {
+ case CapabilityMatrix: return "Matrix";
+ case CapabilityShader: return "Shader";
+ case CapabilityGeometry: return "Geometry";
+ case CapabilityTessellation: return "Tessellation";
+ case CapabilityAddresses: return "Addresses";
+ case CapabilityLinkage: return "Linkage";
+ case CapabilityKernel: return "Kernel";
+ case CapabilityVector16: return "Vector16";
+ case CapabilityFloat16Buffer: return "Float16Buffer";
+ case CapabilityFloat16: return "Float16";
+ case CapabilityFloat64: return "Float64";
+ case CapabilityInt64: return "Int64";
+ case CapabilityInt64Atomics: return "Int64Atomics";
+ case CapabilityImageBasic: return "ImageBasic";
+ case CapabilityImageReadWrite: return "ImageReadWrite";
+ case CapabilityImageMipmap: return "ImageMipmap";
+ case CapabilityPipes: return "Pipes";
+ case CapabilityGroups: return "Groups";
+ case CapabilityDeviceEnqueue: return "DeviceEnqueue";
+ case CapabilityLiteralSampler: return "LiteralSampler";
+ case CapabilityAtomicStorage: return "AtomicStorage";
+ case CapabilityInt16: return "Int16";
+ case CapabilityTessellationPointSize: return "TessellationPointSize";
+ case CapabilityGeometryPointSize: return "GeometryPointSize";
+ case CapabilityImageGatherExtended: return "ImageGatherExtended";
+ case CapabilityStorageImageMultisample: return "StorageImageMultisample";
+ case CapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
+ case CapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
+ case CapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
+ case CapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
+ case CapabilityClipDistance: return "ClipDistance";
+ case CapabilityCullDistance: return "CullDistance";
+ case CapabilityImageCubeArray: return "ImageCubeArray";
+ case CapabilitySampleRateShading: return "SampleRateShading";
+ case CapabilityImageRect: return "ImageRect";
+ case CapabilitySampledRect: return "SampledRect";
+ case CapabilityGenericPointer: return "GenericPointer";
+ case CapabilityInt8: return "Int8";
+ case CapabilityInputAttachment: return "InputAttachment";
+ case CapabilitySparseResidency: return "SparseResidency";
+ case CapabilityMinLod: return "MinLod";
+ case CapabilitySampled1D: return "Sampled1D";
+ case CapabilityImage1D: return "Image1D";
+ case CapabilitySampledCubeArray: return "SampledCubeArray";
+ case CapabilitySampledBuffer: return "SampledBuffer";
+ case CapabilityImageBuffer: return "ImageBuffer";
+ case CapabilityImageMSArray: return "ImageMSArray";
+ case CapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
+ case CapabilityImageQuery: return "ImageQuery";
+ case CapabilityDerivativeControl: return "DerivativeControl";
+ case CapabilityInterpolationFunction: return "InterpolationFunction";
+ case CapabilityTransformFeedback: return "TransformFeedback";
+ case CapabilityGeometryStreams: return "GeometryStreams";
+ case CapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
+ case CapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
+ case CapabilityMultiViewport: return "MultiViewport";
+ case CapabilitySubgroupDispatch: return "SubgroupDispatch";
+ case CapabilityNamedBarrier: return "NamedBarrier";
+ case CapabilityPipeStorage: return "PipeStorage";
+ case CapabilityGroupNonUniform: return "GroupNonUniform";
+ case CapabilityGroupNonUniformVote: return "GroupNonUniformVote";
+ case CapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
+ case CapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
+ case CapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
+ case CapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
+ case CapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
+ case CapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
+ case CapabilityShaderLayer: return "ShaderLayer";
+ case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
+ case CapabilityUniformDecoration: return "UniformDecoration";
+ case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
+ case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
+ case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
+ case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
+ case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
+ case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
+ case CapabilityDrawParameters: return "DrawParameters";
+ case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
+ case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
+ case CapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
+ case CapabilityStorageUniform16: return "StorageUniform16";
+ case CapabilityStoragePushConstant16: return "StoragePushConstant16";
+ case CapabilityStorageInputOutput16: return "StorageInputOutput16";
+ case CapabilityDeviceGroup: return "DeviceGroup";
+ case CapabilityMultiView: return "MultiView";
+ case CapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
+ case CapabilityVariablePointers: return "VariablePointers";
+ case CapabilityAtomicStorageOps: return "AtomicStorageOps";
+ case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
+ case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
+ case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
+ case CapabilityStoragePushConstant8: return "StoragePushConstant8";
+ case CapabilityDenormPreserve: return "DenormPreserve";
+ case CapabilityDenormFlushToZero: return "DenormFlushToZero";
+ case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case CapabilityRoundingModeRTE: return "RoundingModeRTE";
+ case CapabilityRoundingModeRTZ: return "RoundingModeRTZ";
+ case CapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
+ case CapabilityRayQueryKHR: return "RayQueryKHR";
+ case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
+ case CapabilityRayTracingKHR: return "RayTracingKHR";
+ case CapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
+ case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
+ case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
+ case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
+ case CapabilityFloat16ImageAMD: return "Float16ImageAMD";
+ case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
+ case CapabilityFragmentMaskAMD: return "FragmentMaskAMD";
+ case CapabilityStencilExportEXT: return "StencilExportEXT";
+ case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
+ case CapabilityInt64ImageEXT: return "Int64ImageEXT";
+ case CapabilityShaderClockKHR: return "ShaderClockKHR";
+ case CapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
+ case CapabilityQuadControlKHR: return "QuadControlKHR";
+ case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
+ case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
+ case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
+ case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV";
+ case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
+ case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
+ case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
+ case CapabilityMeshShadingNV: return "MeshShadingNV";
+ case CapabilityImageFootprintNV: return "ImageFootprintNV";
+ case CapabilityMeshShadingEXT: return "MeshShadingEXT";
+ case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
+ case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
+ case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
+ case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
+ case CapabilityShaderNonUniform: return "ShaderNonUniform";
+ case CapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray";
+ case CapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
+ case CapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
+ case CapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
+ case CapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
+ case CapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
+ case CapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
+ case CapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
+ case CapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
+ case CapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
+ case CapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
+ case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
+ case CapabilityRayTracingNV: return "RayTracingNV";
+ case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
+ case CapabilityVulkanMemoryModel: return "VulkanMemoryModel";
+ case CapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
+ case CapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
+ case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
+ case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
+ case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
+ case CapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
+ case CapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
+ case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
+ case CapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
+ case CapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation";
+ case CapabilityDisplacementMicromapNV: return "DisplacementMicromapNV";
+ case CapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
+ case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
+ case CapabilityBindlessTextureNV: return "BindlessTextureNV";
+ case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
+ case CapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
+ case CapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
+ case CapabilityRawAccessChainsNV: return "RawAccessChainsNV";
+ case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
+ case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
+ case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
+ case CapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
+ case CapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
+ case CapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
+ case CapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
+ case CapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
+ case CapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
+ case CapabilityAsmINTEL: return "AsmINTEL";
+ case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
+ case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
+ case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
+ case CapabilityVectorComputeINTEL: return "VectorComputeINTEL";
+ case CapabilityVectorAnyINTEL: return "VectorAnyINTEL";
+ case CapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
+ case CapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
+ case CapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
+ case CapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
+ case CapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
+ case CapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
+ case CapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
+ case CapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
+ case CapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
+ case CapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
+ case CapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
+ case CapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
+ case CapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
+ case CapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
+ case CapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
+ case CapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
+ case CapabilityLoopFuseINTEL: return "LoopFuseINTEL";
+ case CapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL";
+ case CapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
+ case CapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
+ case CapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
+ case CapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
+ case CapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL";
+ case CapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
+ case CapabilityIOPipesINTEL: return "IOPipesINTEL";
+ case CapabilityBlockingPipesINTEL: return "BlockingPipesINTEL";
+ case CapabilityFPGARegINTEL: return "FPGARegINTEL";
+ case CapabilityDotProductInputAll: return "DotProductInputAll";
+ case CapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit";
+ case CapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
+ case CapabilityDotProduct: return "DotProduct";
+ case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
+ case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
+ case CapabilityBitInstructions: return "BitInstructions";
+ case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
+ case CapabilityFloatControls2: return "FloatControls2";
+ case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
+ case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
+ case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
+ case CapabilityOptNoneINTEL: return "OptNoneINTEL";
+ case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
+ case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
+ case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
+ case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
+ case CapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
+ case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
+ case CapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
+ case CapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
+ case CapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
+ case CapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
+ case CapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
+ case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
+ case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
+ case CapabilityCacheControlsINTEL: return "CacheControlsINTEL";
+ case CapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryIntersectionToString(RayQueryIntersection value) {
+ switch (value) {
+ case RayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
+ case RayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) {
+ switch (value) {
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) {
+ switch (value) {
+ case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
+ case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPDenormModeToString(FPDenormMode value) {
+ switch (value) {
+ case FPDenormModePreserve: return "Preserve";
+ case FPDenormModeFlushToZero: return "FlushToZero";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPOperationModeToString(FPOperationMode value) {
+ switch (value) {
+ case FPOperationModeIEEE: return "IEEE";
+ case FPOperationModeALT: return "ALT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* QuantizationModesToString(QuantizationModes value) {
+ switch (value) {
+ case QuantizationModesTRN: return "TRN";
+ case QuantizationModesTRN_ZERO: return "TRN_ZERO";
+ case QuantizationModesRND: return "RND";
+ case QuantizationModesRND_ZERO: return "RND_ZERO";
+ case QuantizationModesRND_INF: return "RND_INF";
+ case QuantizationModesRND_MIN_INF: return "RND_MIN_INF";
+ case QuantizationModesRND_CONV: return "RND_CONV";
+ case QuantizationModesRND_CONV_ODD: return "RND_CONV_ODD";
+ default: return "Unknown";
+ }
+}
+
+inline const char* OverflowModesToString(OverflowModes value) {
+ switch (value) {
+ case OverflowModesWRAP: return "WRAP";
+ case OverflowModesSAT: return "SAT";
+ case OverflowModesSAT_ZERO: return "SAT_ZERO";
+ case OverflowModesSAT_SYM: return "SAT_SYM";
+ default: return "Unknown";
+ }
+}
+
+inline const char* PackedVectorFormatToString(PackedVectorFormat value) {
+ switch (value) {
+ case PackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) {
+ switch (value) {
+ case CooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR";
+ case CooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) {
+ switch (value) {
+ case CooperativeMatrixUseMatrixAKHR: return "MatrixAKHR";
+ case CooperativeMatrixUseMatrixBKHR: return "MatrixBKHR";
+ case CooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) {
+ switch (value) {
+ case InitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
+ case InitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* HostAccessQualifierToString(HostAccessQualifier value) {
+ switch (value) {
+ case HostAccessQualifierNoneINTEL: return "NoneINTEL";
+ case HostAccessQualifierReadINTEL: return "ReadINTEL";
+ case HostAccessQualifierWriteINTEL: return "WriteINTEL";
+ case HostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* LoadCacheControlToString(LoadCacheControl value) {
+ switch (value) {
+ case LoadCacheControlUncachedINTEL: return "UncachedINTEL";
+ case LoadCacheControlCachedINTEL: return "CachedINTEL";
+ case LoadCacheControlStreamingINTEL: return "StreamingINTEL";
+ case LoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
+ case LoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* StoreCacheControlToString(StoreCacheControl value) {
+ switch (value) {
+ case StoreCacheControlUncachedINTEL: return "UncachedINTEL";
+ case StoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
+ case StoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
+ case StoreCacheControlStreamingINTEL: return "StreamingINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) {
+ switch (value) {
+ case NamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* OpToString(Op value) {
+ switch (value) {
+ case OpNop: return "OpNop";
+ case OpUndef: return "OpUndef";
+ case OpSourceContinued: return "OpSourceContinued";
+ case OpSource: return "OpSource";
+ case OpSourceExtension: return "OpSourceExtension";
+ case OpName: return "OpName";
+ case OpMemberName: return "OpMemberName";
+ case OpString: return "OpString";
+ case OpLine: return "OpLine";
+ case OpExtension: return "OpExtension";
+ case OpExtInstImport: return "OpExtInstImport";
+ case OpExtInst: return "OpExtInst";
+ case OpMemoryModel: return "OpMemoryModel";
+ case OpEntryPoint: return "OpEntryPoint";
+ case OpExecutionMode: return "OpExecutionMode";
+ case OpCapability: return "OpCapability";
+ case OpTypeVoid: return "OpTypeVoid";
+ case OpTypeBool: return "OpTypeBool";
+ case OpTypeInt: return "OpTypeInt";
+ case OpTypeFloat: return "OpTypeFloat";
+ case OpTypeVector: return "OpTypeVector";
+ case OpTypeMatrix: return "OpTypeMatrix";
+ case OpTypeImage: return "OpTypeImage";
+ case OpTypeSampler: return "OpTypeSampler";
+ case OpTypeSampledImage: return "OpTypeSampledImage";
+ case OpTypeArray: return "OpTypeArray";
+ case OpTypeRuntimeArray: return "OpTypeRuntimeArray";
+ case OpTypeStruct: return "OpTypeStruct";
+ case OpTypeOpaque: return "OpTypeOpaque";
+ case OpTypePointer: return "OpTypePointer";
+ case OpTypeFunction: return "OpTypeFunction";
+ case OpTypeEvent: return "OpTypeEvent";
+ case OpTypeDeviceEvent: return "OpTypeDeviceEvent";
+ case OpTypeReserveId: return "OpTypeReserveId";
+ case OpTypeQueue: return "OpTypeQueue";
+ case OpTypePipe: return "OpTypePipe";
+ case OpTypeForwardPointer: return "OpTypeForwardPointer";
+ case OpConstantTrue: return "OpConstantTrue";
+ case OpConstantFalse: return "OpConstantFalse";
+ case OpConstant: return "OpConstant";
+ case OpConstantComposite: return "OpConstantComposite";
+ case OpConstantSampler: return "OpConstantSampler";
+ case OpConstantNull: return "OpConstantNull";
+ case OpSpecConstantTrue: return "OpSpecConstantTrue";
+ case OpSpecConstantFalse: return "OpSpecConstantFalse";
+ case OpSpecConstant: return "OpSpecConstant";
+ case OpSpecConstantComposite: return "OpSpecConstantComposite";
+ case OpSpecConstantOp: return "OpSpecConstantOp";
+ case OpFunction: return "OpFunction";
+ case OpFunctionParameter: return "OpFunctionParameter";
+ case OpFunctionEnd: return "OpFunctionEnd";
+ case OpFunctionCall: return "OpFunctionCall";
+ case OpVariable: return "OpVariable";
+ case OpImageTexelPointer: return "OpImageTexelPointer";
+ case OpLoad: return "OpLoad";
+ case OpStore: return "OpStore";
+ case OpCopyMemory: return "OpCopyMemory";
+ case OpCopyMemorySized: return "OpCopyMemorySized";
+ case OpAccessChain: return "OpAccessChain";
+ case OpInBoundsAccessChain: return "OpInBoundsAccessChain";
+ case OpPtrAccessChain: return "OpPtrAccessChain";
+ case OpArrayLength: return "OpArrayLength";
+ case OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
+ case OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
+ case OpDecorate: return "OpDecorate";
+ case OpMemberDecorate: return "OpMemberDecorate";
+ case OpDecorationGroup: return "OpDecorationGroup";
+ case OpGroupDecorate: return "OpGroupDecorate";
+ case OpGroupMemberDecorate: return "OpGroupMemberDecorate";
+ case OpVectorExtractDynamic: return "OpVectorExtractDynamic";
+ case OpVectorInsertDynamic: return "OpVectorInsertDynamic";
+ case OpVectorShuffle: return "OpVectorShuffle";
+ case OpCompositeConstruct: return "OpCompositeConstruct";
+ case OpCompositeExtract: return "OpCompositeExtract";
+ case OpCompositeInsert: return "OpCompositeInsert";
+ case OpCopyObject: return "OpCopyObject";
+ case OpTranspose: return "OpTranspose";
+ case OpSampledImage: return "OpSampledImage";
+ case OpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
+ case OpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
+ case OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
+ case OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
+ case OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
+ case OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
+ case OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
+ case OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
+ case OpImageFetch: return "OpImageFetch";
+ case OpImageGather: return "OpImageGather";
+ case OpImageDrefGather: return "OpImageDrefGather";
+ case OpImageRead: return "OpImageRead";
+ case OpImageWrite: return "OpImageWrite";
+ case OpImage: return "OpImage";
+ case OpImageQueryFormat: return "OpImageQueryFormat";
+ case OpImageQueryOrder: return "OpImageQueryOrder";
+ case OpImageQuerySizeLod: return "OpImageQuerySizeLod";
+ case OpImageQuerySize: return "OpImageQuerySize";
+ case OpImageQueryLod: return "OpImageQueryLod";
+ case OpImageQueryLevels: return "OpImageQueryLevels";
+ case OpImageQuerySamples: return "OpImageQuerySamples";
+ case OpConvertFToU: return "OpConvertFToU";
+ case OpConvertFToS: return "OpConvertFToS";
+ case OpConvertSToF: return "OpConvertSToF";
+ case OpConvertUToF: return "OpConvertUToF";
+ case OpUConvert: return "OpUConvert";
+ case OpSConvert: return "OpSConvert";
+ case OpFConvert: return "OpFConvert";
+ case OpQuantizeToF16: return "OpQuantizeToF16";
+ case OpConvertPtrToU: return "OpConvertPtrToU";
+ case OpSatConvertSToU: return "OpSatConvertSToU";
+ case OpSatConvertUToS: return "OpSatConvertUToS";
+ case OpConvertUToPtr: return "OpConvertUToPtr";
+ case OpPtrCastToGeneric: return "OpPtrCastToGeneric";
+ case OpGenericCastToPtr: return "OpGenericCastToPtr";
+ case OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
+ case OpBitcast: return "OpBitcast";
+ case OpSNegate: return "OpSNegate";
+ case OpFNegate: return "OpFNegate";
+ case OpIAdd: return "OpIAdd";
+ case OpFAdd: return "OpFAdd";
+ case OpISub: return "OpISub";
+ case OpFSub: return "OpFSub";
+ case OpIMul: return "OpIMul";
+ case OpFMul: return "OpFMul";
+ case OpUDiv: return "OpUDiv";
+ case OpSDiv: return "OpSDiv";
+ case OpFDiv: return "OpFDiv";
+ case OpUMod: return "OpUMod";
+ case OpSRem: return "OpSRem";
+ case OpSMod: return "OpSMod";
+ case OpFRem: return "OpFRem";
+ case OpFMod: return "OpFMod";
+ case OpVectorTimesScalar: return "OpVectorTimesScalar";
+ case OpMatrixTimesScalar: return "OpMatrixTimesScalar";
+ case OpVectorTimesMatrix: return "OpVectorTimesMatrix";
+ case OpMatrixTimesVector: return "OpMatrixTimesVector";
+ case OpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
+ case OpOuterProduct: return "OpOuterProduct";
+ case OpDot: return "OpDot";
+ case OpIAddCarry: return "OpIAddCarry";
+ case OpISubBorrow: return "OpISubBorrow";
+ case OpUMulExtended: return "OpUMulExtended";
+ case OpSMulExtended: return "OpSMulExtended";
+ case OpAny: return "OpAny";
+ case OpAll: return "OpAll";
+ case OpIsNan: return "OpIsNan";
+ case OpIsInf: return "OpIsInf";
+ case OpIsFinite: return "OpIsFinite";
+ case OpIsNormal: return "OpIsNormal";
+ case OpSignBitSet: return "OpSignBitSet";
+ case OpLessOrGreater: return "OpLessOrGreater";
+ case OpOrdered: return "OpOrdered";
+ case OpUnordered: return "OpUnordered";
+ case OpLogicalEqual: return "OpLogicalEqual";
+ case OpLogicalNotEqual: return "OpLogicalNotEqual";
+ case OpLogicalOr: return "OpLogicalOr";
+ case OpLogicalAnd: return "OpLogicalAnd";
+ case OpLogicalNot: return "OpLogicalNot";
+ case OpSelect: return "OpSelect";
+ case OpIEqual: return "OpIEqual";
+ case OpINotEqual: return "OpINotEqual";
+ case OpUGreaterThan: return "OpUGreaterThan";
+ case OpSGreaterThan: return "OpSGreaterThan";
+ case OpUGreaterThanEqual: return "OpUGreaterThanEqual";
+ case OpSGreaterThanEqual: return "OpSGreaterThanEqual";
+ case OpULessThan: return "OpULessThan";
+ case OpSLessThan: return "OpSLessThan";
+ case OpULessThanEqual: return "OpULessThanEqual";
+ case OpSLessThanEqual: return "OpSLessThanEqual";
+ case OpFOrdEqual: return "OpFOrdEqual";
+ case OpFUnordEqual: return "OpFUnordEqual";
+ case OpFOrdNotEqual: return "OpFOrdNotEqual";
+ case OpFUnordNotEqual: return "OpFUnordNotEqual";
+ case OpFOrdLessThan: return "OpFOrdLessThan";
+ case OpFUnordLessThan: return "OpFUnordLessThan";
+ case OpFOrdGreaterThan: return "OpFOrdGreaterThan";
+ case OpFUnordGreaterThan: return "OpFUnordGreaterThan";
+ case OpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
+ case OpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
+ case OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
+ case OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
+ case OpShiftRightLogical: return "OpShiftRightLogical";
+ case OpShiftRightArithmetic: return "OpShiftRightArithmetic";
+ case OpShiftLeftLogical: return "OpShiftLeftLogical";
+ case OpBitwiseOr: return "OpBitwiseOr";
+ case OpBitwiseXor: return "OpBitwiseXor";
+ case OpBitwiseAnd: return "OpBitwiseAnd";
+ case OpNot: return "OpNot";
+ case OpBitFieldInsert: return "OpBitFieldInsert";
+ case OpBitFieldSExtract: return "OpBitFieldSExtract";
+ case OpBitFieldUExtract: return "OpBitFieldUExtract";
+ case OpBitReverse: return "OpBitReverse";
+ case OpBitCount: return "OpBitCount";
+ case OpDPdx: return "OpDPdx";
+ case OpDPdy: return "OpDPdy";
+ case OpFwidth: return "OpFwidth";
+ case OpDPdxFine: return "OpDPdxFine";
+ case OpDPdyFine: return "OpDPdyFine";
+ case OpFwidthFine: return "OpFwidthFine";
+ case OpDPdxCoarse: return "OpDPdxCoarse";
+ case OpDPdyCoarse: return "OpDPdyCoarse";
+ case OpFwidthCoarse: return "OpFwidthCoarse";
+ case OpEmitVertex: return "OpEmitVertex";
+ case OpEndPrimitive: return "OpEndPrimitive";
+ case OpEmitStreamVertex: return "OpEmitStreamVertex";
+ case OpEndStreamPrimitive: return "OpEndStreamPrimitive";
+ case OpControlBarrier: return "OpControlBarrier";
+ case OpMemoryBarrier: return "OpMemoryBarrier";
+ case OpAtomicLoad: return "OpAtomicLoad";
+ case OpAtomicStore: return "OpAtomicStore";
+ case OpAtomicExchange: return "OpAtomicExchange";
+ case OpAtomicCompareExchange: return "OpAtomicCompareExchange";
+ case OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
+ case OpAtomicIIncrement: return "OpAtomicIIncrement";
+ case OpAtomicIDecrement: return "OpAtomicIDecrement";
+ case OpAtomicIAdd: return "OpAtomicIAdd";
+ case OpAtomicISub: return "OpAtomicISub";
+ case OpAtomicSMin: return "OpAtomicSMin";
+ case OpAtomicUMin: return "OpAtomicUMin";
+ case OpAtomicSMax: return "OpAtomicSMax";
+ case OpAtomicUMax: return "OpAtomicUMax";
+ case OpAtomicAnd: return "OpAtomicAnd";
+ case OpAtomicOr: return "OpAtomicOr";
+ case OpAtomicXor: return "OpAtomicXor";
+ case OpPhi: return "OpPhi";
+ case OpLoopMerge: return "OpLoopMerge";
+ case OpSelectionMerge: return "OpSelectionMerge";
+ case OpLabel: return "OpLabel";
+ case OpBranch: return "OpBranch";
+ case OpBranchConditional: return "OpBranchConditional";
+ case OpSwitch: return "OpSwitch";
+ case OpKill: return "OpKill";
+ case OpReturn: return "OpReturn";
+ case OpReturnValue: return "OpReturnValue";
+ case OpUnreachable: return "OpUnreachable";
+ case OpLifetimeStart: return "OpLifetimeStart";
+ case OpLifetimeStop: return "OpLifetimeStop";
+ case OpGroupAsyncCopy: return "OpGroupAsyncCopy";
+ case OpGroupWaitEvents: return "OpGroupWaitEvents";
+ case OpGroupAll: return "OpGroupAll";
+ case OpGroupAny: return "OpGroupAny";
+ case OpGroupBroadcast: return "OpGroupBroadcast";
+ case OpGroupIAdd: return "OpGroupIAdd";
+ case OpGroupFAdd: return "OpGroupFAdd";
+ case OpGroupFMin: return "OpGroupFMin";
+ case OpGroupUMin: return "OpGroupUMin";
+ case OpGroupSMin: return "OpGroupSMin";
+ case OpGroupFMax: return "OpGroupFMax";
+ case OpGroupUMax: return "OpGroupUMax";
+ case OpGroupSMax: return "OpGroupSMax";
+ case OpReadPipe: return "OpReadPipe";
+ case OpWritePipe: return "OpWritePipe";
+ case OpReservedReadPipe: return "OpReservedReadPipe";
+ case OpReservedWritePipe: return "OpReservedWritePipe";
+ case OpReserveReadPipePackets: return "OpReserveReadPipePackets";
+ case OpReserveWritePipePackets: return "OpReserveWritePipePackets";
+ case OpCommitReadPipe: return "OpCommitReadPipe";
+ case OpCommitWritePipe: return "OpCommitWritePipe";
+ case OpIsValidReserveId: return "OpIsValidReserveId";
+ case OpGetNumPipePackets: return "OpGetNumPipePackets";
+ case OpGetMaxPipePackets: return "OpGetMaxPipePackets";
+ case OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
+ case OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
+ case OpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
+ case OpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
+ case OpEnqueueMarker: return "OpEnqueueMarker";
+ case OpEnqueueKernel: return "OpEnqueueKernel";
+ case OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
+ case OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
+ case OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
+ case OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
+ case OpRetainEvent: return "OpRetainEvent";
+ case OpReleaseEvent: return "OpReleaseEvent";
+ case OpCreateUserEvent: return "OpCreateUserEvent";
+ case OpIsValidEvent: return "OpIsValidEvent";
+ case OpSetUserEventStatus: return "OpSetUserEventStatus";
+ case OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
+ case OpGetDefaultQueue: return "OpGetDefaultQueue";
+ case OpBuildNDRange: return "OpBuildNDRange";
+ case OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
+ case OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
+ case OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
+ case OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
+ case OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
+ case OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
+ case OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
+ case OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
+ case OpImageSparseFetch: return "OpImageSparseFetch";
+ case OpImageSparseGather: return "OpImageSparseGather";
+ case OpImageSparseDrefGather: return "OpImageSparseDrefGather";
+ case OpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
+ case OpNoLine: return "OpNoLine";
+ case OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
+ case OpAtomicFlagClear: return "OpAtomicFlagClear";
+ case OpImageSparseRead: return "OpImageSparseRead";
+ case OpSizeOf: return "OpSizeOf";
+ case OpTypePipeStorage: return "OpTypePipeStorage";
+ case OpConstantPipeStorage: return "OpConstantPipeStorage";
+ case OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
+ case OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
+ case OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
+ case OpTypeNamedBarrier: return "OpTypeNamedBarrier";
+ case OpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
+ case OpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
+ case OpModuleProcessed: return "OpModuleProcessed";
+ case OpExecutionModeId: return "OpExecutionModeId";
+ case OpDecorateId: return "OpDecorateId";
+ case OpGroupNonUniformElect: return "OpGroupNonUniformElect";
+ case OpGroupNonUniformAll: return "OpGroupNonUniformAll";
+ case OpGroupNonUniformAny: return "OpGroupNonUniformAny";
+ case OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
+ case OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
+ case OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
+ case OpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
+ case OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
+ case OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
+ case OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
+ case OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
+ case OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
+ case OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
+ case OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
+ case OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
+ case OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
+ case OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
+ case OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
+ case OpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
+ case OpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
+ case OpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
+ case OpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
+ case OpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
+ case OpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
+ case OpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
+ case OpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
+ case OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
+ case OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
+ case OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
+ case OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
+ case OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
+ case OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
+ case OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
+ case OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
+ case OpCopyLogical: return "OpCopyLogical";
+ case OpPtrEqual: return "OpPtrEqual";
+ case OpPtrNotEqual: return "OpPtrNotEqual";
+ case OpPtrDiff: return "OpPtrDiff";
+ case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
+ case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
+ case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
+ case OpTerminateInvocation: return "OpTerminateInvocation";
+ case OpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
+ case OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
+ case OpSubgroupAllKHR: return "OpSubgroupAllKHR";
+ case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
+ case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
+ case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
+ case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
+ case OpTraceRayKHR: return "OpTraceRayKHR";
+ case OpExecuteCallableKHR: return "OpExecuteCallableKHR";
+ case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
+ case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
+ case OpTerminateRayKHR: return "OpTerminateRayKHR";
+ case OpSDot: return "OpSDot";
+ case OpUDot: return "OpUDot";
+ case OpSUDot: return "OpSUDot";
+ case OpSDotAccSat: return "OpSDotAccSat";
+ case OpUDotAccSat: return "OpUDotAccSat";
+ case OpSUDotAccSat: return "OpSUDotAccSat";
+ case OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
+ case OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
+ case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
+ case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
+ case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
+ case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
+ case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
+ case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
+ case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
+ case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
+ case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
+ case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
+ case OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
+ case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
+ case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
+ case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
+ case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
+ case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
+ case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
+ case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
+ case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
+ case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
+ case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
+ case OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
+ case OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
+ case OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
+ case OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
+ case OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
+ case OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
+ case OpFragmentFetchAMD: return "OpFragmentFetchAMD";
+ case OpReadClockKHR: return "OpReadClockKHR";
+ case OpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX";
+ case OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
+ case OpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX";
+ case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
+ case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
+ case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
+ case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
+ case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
+ case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
+ case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
+ case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
+ case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
+ case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
+ case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
+ case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
+ case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
+ case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
+ case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
+ case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
+ case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
+ case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
+ case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
+ case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
+ case OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
+ case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
+ case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
+ case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
+ case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
+ case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
+ case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
+ case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
+ case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
+ case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
+ case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
+ case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
+ case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
+ case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
+ case OpTypeHitObjectNV: return "OpTypeHitObjectNV";
+ case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
+ case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
+ case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
+ case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
+ case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
+ case OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
+ case OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
+ case OpReportIntersectionKHR: return "OpReportIntersectionKHR";
+ case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
+ case OpTerminateRayNV: return "OpTerminateRayNV";
+ case OpTraceNV: return "OpTraceNV";
+ case OpTraceMotionNV: return "OpTraceMotionNV";
+ case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
+ case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
+ case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
+ case OpExecuteCallableNV: return "OpExecuteCallableNV";
+ case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
+ case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
+ case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
+ case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
+ case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
+ case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
+ case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
+ case OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
+ case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
+ case OpConvertUToImageNV: return "OpConvertUToImageNV";
+ case OpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
+ case OpConvertImageToUNV: return "OpConvertImageToUNV";
+ case OpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
+ case OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
+ case OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
+ case OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
+ case OpRawAccessChainNV: return "OpRawAccessChainNV";
+ case OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
+ case OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
+ case OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
+ case OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
+ case OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
+ case OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
+ case OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
+ case OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
+ case OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
+ case OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
+ case OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
+ case OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
+ case OpAbsISubINTEL: return "OpAbsISubINTEL";
+ case OpAbsUSubINTEL: return "OpAbsUSubINTEL";
+ case OpIAddSatINTEL: return "OpIAddSatINTEL";
+ case OpUAddSatINTEL: return "OpUAddSatINTEL";
+ case OpIAverageINTEL: return "OpIAverageINTEL";
+ case OpUAverageINTEL: return "OpUAverageINTEL";
+ case OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
+ case OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
+ case OpISubSatINTEL: return "OpISubSatINTEL";
+ case OpUSubSatINTEL: return "OpUSubSatINTEL";
+ case OpIMul32x16INTEL: return "OpIMul32x16INTEL";
+ case OpUMul32x16INTEL: return "OpUMul32x16INTEL";
+ case OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
+ case OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
+ case OpAsmTargetINTEL: return "OpAsmTargetINTEL";
+ case OpAsmINTEL: return "OpAsmINTEL";
+ case OpAsmCallINTEL: return "OpAsmCallINTEL";
+ case OpAtomicFMinEXT: return "OpAtomicFMinEXT";
+ case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
+ case OpAssumeTrueKHR: return "OpAssumeTrueKHR";
+ case OpExpectKHR: return "OpExpectKHR";
+ case OpDecorateString: return "OpDecorateString";
+ case OpMemberDecorateString: return "OpMemberDecorateString";
+ case OpVmeImageINTEL: return "OpVmeImageINTEL";
+ case OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
+ case OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
+ case OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
+ case OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
+ case OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
+ case OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
+ case OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
+ case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
+ case OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
+ case OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
+ case OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
+ case OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
+ case OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
+ case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
+ case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
+ case OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
+ case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
+ case OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
+ case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
+ case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
+ case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
+ case OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
+ case OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
+ case OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
+ case OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
+ case OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
+ case OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
+ case OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
+ case OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
+ case OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
+ case OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
+ case OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
+ case OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
+ case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
+ case OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
+ case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
+ case OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
+ case OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
+ case OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
+ case OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
+ case OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
+ case OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
+ case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
+ case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
+ case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
+ case OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
+ case OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
+ case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
+ case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
+ case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
+ case OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
+ case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
+ case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
+ case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
+ case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
+ case OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
+ case OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
+ case OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
+ case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
+ case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
+ case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
+ case OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
+ case OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
+ case OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
+ case OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
+ case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
+ case OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
+ case OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
+ case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
+ case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
+ case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
+ case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
+ case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
+ case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
+ case OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
+ case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
+ case OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
+ case OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
+ case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
+ case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
+ case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
+ case OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
+ case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
+ case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
+ case OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
+ case OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
+ case OpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
+ case OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
+ case OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
+ case OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
+ case OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
+ case OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
+ case OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
+ case OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
+ case OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
+ case OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
+ case OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
+ case OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
+ case OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
+ case OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
+ case OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
+ case OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
+ case OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
+ case OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
+ case OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
+ case OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
+ case OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
+ case OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
+ case OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
+ case OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
+ case OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
+ case OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
+ case OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
+ case OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
+ case OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
+ case OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
+ case OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
+ case OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
+ case OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
+ case OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
+ case OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
+ case OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
+ case OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
+ case OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
+ case OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
+ case OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
+ case OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
+ case OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
+ case OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
+ case OpLoopControlINTEL: return "OpLoopControlINTEL";
+ case OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
+ case OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
+ case OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
+ case OpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
+ case OpFixedRecipINTEL: return "OpFixedRecipINTEL";
+ case OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
+ case OpFixedSinINTEL: return "OpFixedSinINTEL";
+ case OpFixedCosINTEL: return "OpFixedCosINTEL";
+ case OpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
+ case OpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
+ case OpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
+ case OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
+ case OpFixedLogINTEL: return "OpFixedLogINTEL";
+ case OpFixedExpINTEL: return "OpFixedExpINTEL";
+ case OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
+ case OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
+ case OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
+ case OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
+ case OpFPGARegINTEL: return "OpFPGARegINTEL";
+ case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
+ case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
+ case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
+ case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
+ case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
+ case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
+ case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
+ case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
+ case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
+ case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
+ case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
+ case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
+ case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
+ case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
+ case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
+ case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
+ case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
+ case OpAtomicFAddEXT: return "OpAtomicFAddEXT";
+ case OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
+ case OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
+ case OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
+ case OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
+ case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
+ case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
+ case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
+ case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
+ case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case OpGroupIMulKHR: return "OpGroupIMulKHR";
+ case OpGroupFMulKHR: return "OpGroupFMulKHR";
+ case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
+ case OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
+ case OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
+ case OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
+ case OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
+ case OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
+ case OpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
+ case OpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
+ default: return "Unknown";
+ }
+}
+
#endif /* SPV_ENABLE_UTILITY_CODE */
// Overload bitwise operators for mask bit combining
diff --git a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp11 b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp11
index d6b4fb7bce..bcdff9d526 100644
--- a/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp11
+++ b/third_party/vulkan-deps/spirv-headers/src/include/spirv/unified1/spirv.hpp11
@@ -2884,6 +2884,1779 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
}
}
+inline const char* SourceLanguageToString(SourceLanguage value) {
+ switch (value) {
+ case SourceLanguageUnknown: return "Unknown";
+ case SourceLanguageESSL: return "ESSL";
+ case SourceLanguageGLSL: return "GLSL";
+ case SourceLanguageOpenCL_C: return "OpenCL_C";
+ case SourceLanguageOpenCL_CPP: return "OpenCL_CPP";
+ case SourceLanguageHLSL: return "HLSL";
+ case SourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
+ case SourceLanguageSYCL: return "SYCL";
+ case SourceLanguageHERO_C: return "HERO_C";
+ case SourceLanguageNZSL: return "NZSL";
+ case SourceLanguageWGSL: return "WGSL";
+ case SourceLanguageSlang: return "Slang";
+ case SourceLanguageZig: return "Zig";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ExecutionModelToString(ExecutionModel value) {
+ switch (value) {
+ case ExecutionModelVertex: return "Vertex";
+ case ExecutionModelTessellationControl: return "TessellationControl";
+ case ExecutionModelTessellationEvaluation: return "TessellationEvaluation";
+ case ExecutionModelGeometry: return "Geometry";
+ case ExecutionModelFragment: return "Fragment";
+ case ExecutionModelGLCompute: return "GLCompute";
+ case ExecutionModelKernel: return "Kernel";
+ case ExecutionModelTaskNV: return "TaskNV";
+ case ExecutionModelMeshNV: return "MeshNV";
+ case ExecutionModelRayGenerationKHR: return "RayGenerationKHR";
+ case ExecutionModelIntersectionKHR: return "IntersectionKHR";
+ case ExecutionModelAnyHitKHR: return "AnyHitKHR";
+ case ExecutionModelClosestHitKHR: return "ClosestHitKHR";
+ case ExecutionModelMissKHR: return "MissKHR";
+ case ExecutionModelCallableKHR: return "CallableKHR";
+ case ExecutionModelTaskEXT: return "TaskEXT";
+ case ExecutionModelMeshEXT: return "MeshEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* AddressingModelToString(AddressingModel value) {
+ switch (value) {
+ case AddressingModelLogical: return "Logical";
+ case AddressingModelPhysical32: return "Physical32";
+ case AddressingModelPhysical64: return "Physical64";
+ case AddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
+ default: return "Unknown";
+ }
+}
+
+inline const char* MemoryModelToString(MemoryModel value) {
+ switch (value) {
+ case MemoryModelSimple: return "Simple";
+ case MemoryModelGLSL450: return "GLSL450";
+ case MemoryModelOpenCL: return "OpenCL";
+ case MemoryModelVulkan: return "Vulkan";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ExecutionModeToString(ExecutionMode value) {
+ switch (value) {
+ case ExecutionModeInvocations: return "Invocations";
+ case ExecutionModeSpacingEqual: return "SpacingEqual";
+ case ExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
+ case ExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
+ case ExecutionModeVertexOrderCw: return "VertexOrderCw";
+ case ExecutionModeVertexOrderCcw: return "VertexOrderCcw";
+ case ExecutionModePixelCenterInteger: return "PixelCenterInteger";
+ case ExecutionModeOriginUpperLeft: return "OriginUpperLeft";
+ case ExecutionModeOriginLowerLeft: return "OriginLowerLeft";
+ case ExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
+ case ExecutionModePointMode: return "PointMode";
+ case ExecutionModeXfb: return "Xfb";
+ case ExecutionModeDepthReplacing: return "DepthReplacing";
+ case ExecutionModeDepthGreater: return "DepthGreater";
+ case ExecutionModeDepthLess: return "DepthLess";
+ case ExecutionModeDepthUnchanged: return "DepthUnchanged";
+ case ExecutionModeLocalSize: return "LocalSize";
+ case ExecutionModeLocalSizeHint: return "LocalSizeHint";
+ case ExecutionModeInputPoints: return "InputPoints";
+ case ExecutionModeInputLines: return "InputLines";
+ case ExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
+ case ExecutionModeTriangles: return "Triangles";
+ case ExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
+ case ExecutionModeQuads: return "Quads";
+ case ExecutionModeIsolines: return "Isolines";
+ case ExecutionModeOutputVertices: return "OutputVertices";
+ case ExecutionModeOutputPoints: return "OutputPoints";
+ case ExecutionModeOutputLineStrip: return "OutputLineStrip";
+ case ExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
+ case ExecutionModeVecTypeHint: return "VecTypeHint";
+ case ExecutionModeContractionOff: return "ContractionOff";
+ case ExecutionModeInitializer: return "Initializer";
+ case ExecutionModeFinalizer: return "Finalizer";
+ case ExecutionModeSubgroupSize: return "SubgroupSize";
+ case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
+ case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
+ case ExecutionModeLocalSizeId: return "LocalSizeId";
+ case ExecutionModeLocalSizeHintId: return "LocalSizeHintId";
+ case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
+ case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
+ case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
+ case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
+ case ExecutionModePostDepthCoverage: return "PostDepthCoverage";
+ case ExecutionModeDenormPreserve: return "DenormPreserve";
+ case ExecutionModeDenormFlushToZero: return "DenormFlushToZero";
+ case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case ExecutionModeRoundingModeRTE: return "RoundingModeRTE";
+ case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
+ case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
+ case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
+ case ExecutionModeCoalescingAMDX: return "CoalescingAMDX";
+ case ExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
+ case ExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
+ case ExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
+ case ExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
+ case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
+ case ExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
+ case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
+ case ExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
+ case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
+ case ExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
+ case ExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
+ case ExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
+ case ExecutionModeOutputLinesEXT: return "OutputLinesEXT";
+ case ExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
+ case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV";
+ case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
+ case ExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
+ case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
+ case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
+ case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
+ case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
+ case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
+ case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
+ case ExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
+ case ExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
+ case ExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
+ case ExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
+ case ExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
+ case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
+ case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
+ case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
+ case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
+ case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
+ case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
+ case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+ case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
+ case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
+ case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
+ case ExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
+ case ExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
+ case ExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* StorageClassToString(StorageClass value) {
+ switch (value) {
+ case StorageClassUniformConstant: return "UniformConstant";
+ case StorageClassInput: return "Input";
+ case StorageClassUniform: return "Uniform";
+ case StorageClassOutput: return "Output";
+ case StorageClassWorkgroup: return "Workgroup";
+ case StorageClassCrossWorkgroup: return "CrossWorkgroup";
+ case StorageClassPrivate: return "Private";
+ case StorageClassFunction: return "Function";
+ case StorageClassGeneric: return "Generic";
+ case StorageClassPushConstant: return "PushConstant";
+ case StorageClassAtomicCounter: return "AtomicCounter";
+ case StorageClassImage: return "Image";
+ case StorageClassStorageBuffer: return "StorageBuffer";
+ case StorageClassTileImageEXT: return "TileImageEXT";
+ case StorageClassNodePayloadAMDX: return "NodePayloadAMDX";
+ case StorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX";
+ case StorageClassCallableDataKHR: return "CallableDataKHR";
+ case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
+ case StorageClassRayPayloadKHR: return "RayPayloadKHR";
+ case StorageClassHitAttributeKHR: return "HitAttributeKHR";
+ case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
+ case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
+ case StorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
+ case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
+ case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
+ case StorageClassCodeSectionINTEL: return "CodeSectionINTEL";
+ case StorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL";
+ case StorageClassHostOnlyINTEL: return "HostOnlyINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* DimToString(Dim value) {
+ switch (value) {
+ case Dim1D: return "1D";
+ case Dim2D: return "2D";
+ case Dim3D: return "3D";
+ case DimCube: return "Cube";
+ case DimRect: return "Rect";
+ case DimBuffer: return "Buffer";
+ case DimSubpassData: return "SubpassData";
+ case DimTileImageDataEXT: return "TileImageDataEXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) {
+ switch (value) {
+ case SamplerAddressingModeNone: return "None";
+ case SamplerAddressingModeClampToEdge: return "ClampToEdge";
+ case SamplerAddressingModeClamp: return "Clamp";
+ case SamplerAddressingModeRepeat: return "Repeat";
+ case SamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
+ default: return "Unknown";
+ }
+}
+
+inline const char* SamplerFilterModeToString(SamplerFilterMode value) {
+ switch (value) {
+ case SamplerFilterModeNearest: return "Nearest";
+ case SamplerFilterModeLinear: return "Linear";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageFormatToString(ImageFormat value) {
+ switch (value) {
+ case ImageFormatUnknown: return "Unknown";
+ case ImageFormatRgba32f: return "Rgba32f";
+ case ImageFormatRgba16f: return "Rgba16f";
+ case ImageFormatR32f: return "R32f";
+ case ImageFormatRgba8: return "Rgba8";
+ case ImageFormatRgba8Snorm: return "Rgba8Snorm";
+ case ImageFormatRg32f: return "Rg32f";
+ case ImageFormatRg16f: return "Rg16f";
+ case ImageFormatR11fG11fB10f: return "R11fG11fB10f";
+ case ImageFormatR16f: return "R16f";
+ case ImageFormatRgba16: return "Rgba16";
+ case ImageFormatRgb10A2: return "Rgb10A2";
+ case ImageFormatRg16: return "Rg16";
+ case ImageFormatRg8: return "Rg8";
+ case ImageFormatR16: return "R16";
+ case ImageFormatR8: return "R8";
+ case ImageFormatRgba16Snorm: return "Rgba16Snorm";
+ case ImageFormatRg16Snorm: return "Rg16Snorm";
+ case ImageFormatRg8Snorm: return "Rg8Snorm";
+ case ImageFormatR16Snorm: return "R16Snorm";
+ case ImageFormatR8Snorm: return "R8Snorm";
+ case ImageFormatRgba32i: return "Rgba32i";
+ case ImageFormatRgba16i: return "Rgba16i";
+ case ImageFormatRgba8i: return "Rgba8i";
+ case ImageFormatR32i: return "R32i";
+ case ImageFormatRg32i: return "Rg32i";
+ case ImageFormatRg16i: return "Rg16i";
+ case ImageFormatRg8i: return "Rg8i";
+ case ImageFormatR16i: return "R16i";
+ case ImageFormatR8i: return "R8i";
+ case ImageFormatRgba32ui: return "Rgba32ui";
+ case ImageFormatRgba16ui: return "Rgba16ui";
+ case ImageFormatRgba8ui: return "Rgba8ui";
+ case ImageFormatR32ui: return "R32ui";
+ case ImageFormatRgb10a2ui: return "Rgb10a2ui";
+ case ImageFormatRg32ui: return "Rg32ui";
+ case ImageFormatRg16ui: return "Rg16ui";
+ case ImageFormatRg8ui: return "Rg8ui";
+ case ImageFormatR16ui: return "R16ui";
+ case ImageFormatR8ui: return "R8ui";
+ case ImageFormatR64ui: return "R64ui";
+ case ImageFormatR64i: return "R64i";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageChannelOrderToString(ImageChannelOrder value) {
+ switch (value) {
+ case ImageChannelOrderR: return "R";
+ case ImageChannelOrderA: return "A";
+ case ImageChannelOrderRG: return "RG";
+ case ImageChannelOrderRA: return "RA";
+ case ImageChannelOrderRGB: return "RGB";
+ case ImageChannelOrderRGBA: return "RGBA";
+ case ImageChannelOrderBGRA: return "BGRA";
+ case ImageChannelOrderARGB: return "ARGB";
+ case ImageChannelOrderIntensity: return "Intensity";
+ case ImageChannelOrderLuminance: return "Luminance";
+ case ImageChannelOrderRx: return "Rx";
+ case ImageChannelOrderRGx: return "RGx";
+ case ImageChannelOrderRGBx: return "RGBx";
+ case ImageChannelOrderDepth: return "Depth";
+ case ImageChannelOrderDepthStencil: return "DepthStencil";
+ case ImageChannelOrdersRGB: return "sRGB";
+ case ImageChannelOrdersRGBx: return "sRGBx";
+ case ImageChannelOrdersRGBA: return "sRGBA";
+ case ImageChannelOrdersBGRA: return "sBGRA";
+ case ImageChannelOrderABGR: return "ABGR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) {
+ switch (value) {
+ case ImageChannelDataTypeSnormInt8: return "SnormInt8";
+ case ImageChannelDataTypeSnormInt16: return "SnormInt16";
+ case ImageChannelDataTypeUnormInt8: return "UnormInt8";
+ case ImageChannelDataTypeUnormInt16: return "UnormInt16";
+ case ImageChannelDataTypeUnormShort565: return "UnormShort565";
+ case ImageChannelDataTypeUnormShort555: return "UnormShort555";
+ case ImageChannelDataTypeUnormInt101010: return "UnormInt101010";
+ case ImageChannelDataTypeSignedInt8: return "SignedInt8";
+ case ImageChannelDataTypeSignedInt16: return "SignedInt16";
+ case ImageChannelDataTypeSignedInt32: return "SignedInt32";
+ case ImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
+ case ImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
+ case ImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
+ case ImageChannelDataTypeHalfFloat: return "HalfFloat";
+ case ImageChannelDataTypeFloat: return "Float";
+ case ImageChannelDataTypeUnormInt24: return "UnormInt24";
+ case ImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
+ case ImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
+ case ImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPRoundingModeToString(FPRoundingMode value) {
+ switch (value) {
+ case FPRoundingModeRTE: return "RTE";
+ case FPRoundingModeRTZ: return "RTZ";
+ case FPRoundingModeRTP: return "RTP";
+ case FPRoundingModeRTN: return "RTN";
+ default: return "Unknown";
+ }
+}
+
+inline const char* LinkageTypeToString(LinkageType value) {
+ switch (value) {
+ case LinkageTypeExport: return "Export";
+ case LinkageTypeImport: return "Import";
+ case LinkageTypeLinkOnceODR: return "LinkOnceODR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* AccessQualifierToString(AccessQualifier value) {
+ switch (value) {
+ case AccessQualifierReadOnly: return "ReadOnly";
+ case AccessQualifierWriteOnly: return "WriteOnly";
+ case AccessQualifierReadWrite: return "ReadWrite";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) {
+ switch (value) {
+ case FunctionParameterAttributeZext: return "Zext";
+ case FunctionParameterAttributeSext: return "Sext";
+ case FunctionParameterAttributeByVal: return "ByVal";
+ case FunctionParameterAttributeSret: return "Sret";
+ case FunctionParameterAttributeNoAlias: return "NoAlias";
+ case FunctionParameterAttributeNoCapture: return "NoCapture";
+ case FunctionParameterAttributeNoWrite: return "NoWrite";
+ case FunctionParameterAttributeNoReadWrite: return "NoReadWrite";
+ case FunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* DecorationToString(Decoration value) {
+ switch (value) {
+ case DecorationRelaxedPrecision: return "RelaxedPrecision";
+ case DecorationSpecId: return "SpecId";
+ case DecorationBlock: return "Block";
+ case DecorationBufferBlock: return "BufferBlock";
+ case DecorationRowMajor: return "RowMajor";
+ case DecorationColMajor: return "ColMajor";
+ case DecorationArrayStride: return "ArrayStride";
+ case DecorationMatrixStride: return "MatrixStride";
+ case DecorationGLSLShared: return "GLSLShared";
+ case DecorationGLSLPacked: return "GLSLPacked";
+ case DecorationCPacked: return "CPacked";
+ case DecorationBuiltIn: return "BuiltIn";
+ case DecorationNoPerspective: return "NoPerspective";
+ case DecorationFlat: return "Flat";
+ case DecorationPatch: return "Patch";
+ case DecorationCentroid: return "Centroid";
+ case DecorationSample: return "Sample";
+ case DecorationInvariant: return "Invariant";
+ case DecorationRestrict: return "Restrict";
+ case DecorationAliased: return "Aliased";
+ case DecorationVolatile: return "Volatile";
+ case DecorationConstant: return "Constant";
+ case DecorationCoherent: return "Coherent";
+ case DecorationNonWritable: return "NonWritable";
+ case DecorationNonReadable: return "NonReadable";
+ case DecorationUniform: return "Uniform";
+ case DecorationUniformId: return "UniformId";
+ case DecorationSaturatedConversion: return "SaturatedConversion";
+ case DecorationStream: return "Stream";
+ case DecorationLocation: return "Location";
+ case DecorationComponent: return "Component";
+ case DecorationIndex: return "Index";
+ case DecorationBinding: return "Binding";
+ case DecorationDescriptorSet: return "DescriptorSet";
+ case DecorationOffset: return "Offset";
+ case DecorationXfbBuffer: return "XfbBuffer";
+ case DecorationXfbStride: return "XfbStride";
+ case DecorationFuncParamAttr: return "FuncParamAttr";
+ case DecorationFPRoundingMode: return "FPRoundingMode";
+ case DecorationFPFastMathMode: return "FPFastMathMode";
+ case DecorationLinkageAttributes: return "LinkageAttributes";
+ case DecorationNoContraction: return "NoContraction";
+ case DecorationInputAttachmentIndex: return "InputAttachmentIndex";
+ case DecorationAlignment: return "Alignment";
+ case DecorationMaxByteOffset: return "MaxByteOffset";
+ case DecorationAlignmentId: return "AlignmentId";
+ case DecorationMaxByteOffsetId: return "MaxByteOffsetId";
+ case DecorationNoSignedWrap: return "NoSignedWrap";
+ case DecorationNoUnsignedWrap: return "NoUnsignedWrap";
+ case DecorationWeightTextureQCOM: return "WeightTextureQCOM";
+ case DecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
+ case DecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
+ case DecorationExplicitInterpAMD: return "ExplicitInterpAMD";
+ case DecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
+ case DecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
+ case DecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
+ case DecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
+ case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
+ case DecorationPassthroughNV: return "PassthroughNV";
+ case DecorationViewportRelativeNV: return "ViewportRelativeNV";
+ case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
+ case DecorationPerPrimitiveEXT: return "PerPrimitiveEXT";
+ case DecorationPerViewNV: return "PerViewNV";
+ case DecorationPerTaskNV: return "PerTaskNV";
+ case DecorationPerVertexKHR: return "PerVertexKHR";
+ case DecorationNonUniform: return "NonUniform";
+ case DecorationRestrictPointer: return "RestrictPointer";
+ case DecorationAliasedPointer: return "AliasedPointer";
+ case DecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
+ case DecorationBindlessSamplerNV: return "BindlessSamplerNV";
+ case DecorationBindlessImageNV: return "BindlessImageNV";
+ case DecorationBoundSamplerNV: return "BoundSamplerNV";
+ case DecorationBoundImageNV: return "BoundImageNV";
+ case DecorationSIMTCallINTEL: return "SIMTCallINTEL";
+ case DecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
+ case DecorationClobberINTEL: return "ClobberINTEL";
+ case DecorationSideEffectsINTEL: return "SideEffectsINTEL";
+ case DecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
+ case DecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
+ case DecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
+ case DecorationStackCallINTEL: return "StackCallINTEL";
+ case DecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
+ case DecorationCounterBuffer: return "CounterBuffer";
+ case DecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
+ case DecorationUserTypeGOOGLE: return "UserTypeGOOGLE";
+ case DecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
+ case DecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
+ case DecorationRegisterINTEL: return "RegisterINTEL";
+ case DecorationMemoryINTEL: return "MemoryINTEL";
+ case DecorationNumbanksINTEL: return "NumbanksINTEL";
+ case DecorationBankwidthINTEL: return "BankwidthINTEL";
+ case DecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
+ case DecorationSinglepumpINTEL: return "SinglepumpINTEL";
+ case DecorationDoublepumpINTEL: return "DoublepumpINTEL";
+ case DecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL";
+ case DecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL";
+ case DecorationMergeINTEL: return "MergeINTEL";
+ case DecorationBankBitsINTEL: return "BankBitsINTEL";
+ case DecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
+ case DecorationStridesizeINTEL: return "StridesizeINTEL";
+ case DecorationWordsizeINTEL: return "WordsizeINTEL";
+ case DecorationTrueDualPortINTEL: return "TrueDualPortINTEL";
+ case DecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL";
+ case DecorationCacheSizeINTEL: return "CacheSizeINTEL";
+ case DecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
+ case DecorationPrefetchINTEL: return "PrefetchINTEL";
+ case DecorationStallEnableINTEL: return "StallEnableINTEL";
+ case DecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
+ case DecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
+ case DecorationAliasScopeINTEL: return "AliasScopeINTEL";
+ case DecorationNoAliasINTEL: return "NoAliasINTEL";
+ case DecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL";
+ case DecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
+ case DecorationPipelineEnableINTEL: return "PipelineEnableINTEL";
+ case DecorationBufferLocationINTEL: return "BufferLocationINTEL";
+ case DecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL";
+ case DecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
+ case DecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
+ case DecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
+ case DecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
+ case DecorationStallFreeINTEL: return "StallFreeINTEL";
+ case DecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
+ case DecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
+ case DecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
+ case DecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
+ case DecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
+ case DecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
+ case DecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
+ case DecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
+ case DecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
+ case DecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
+ case DecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
+ case DecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
+ case DecorationHostAccessINTEL: return "HostAccessINTEL";
+ case DecorationInitModeINTEL: return "InitModeINTEL";
+ case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
+ case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
+ case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* BuiltInToString(BuiltIn value) {
+ switch (value) {
+ case BuiltInPosition: return "Position";
+ case BuiltInPointSize: return "PointSize";
+ case BuiltInClipDistance: return "ClipDistance";
+ case BuiltInCullDistance: return "CullDistance";
+ case BuiltInVertexId: return "VertexId";
+ case BuiltInInstanceId: return "InstanceId";
+ case BuiltInPrimitiveId: return "PrimitiveId";
+ case BuiltInInvocationId: return "InvocationId";
+ case BuiltInLayer: return "Layer";
+ case BuiltInViewportIndex: return "ViewportIndex";
+ case BuiltInTessLevelOuter: return "TessLevelOuter";
+ case BuiltInTessLevelInner: return "TessLevelInner";
+ case BuiltInTessCoord: return "TessCoord";
+ case BuiltInPatchVertices: return "PatchVertices";
+ case BuiltInFragCoord: return "FragCoord";
+ case BuiltInPointCoord: return "PointCoord";
+ case BuiltInFrontFacing: return "FrontFacing";
+ case BuiltInSampleId: return "SampleId";
+ case BuiltInSamplePosition: return "SamplePosition";
+ case BuiltInSampleMask: return "SampleMask";
+ case BuiltInFragDepth: return "FragDepth";
+ case BuiltInHelperInvocation: return "HelperInvocation";
+ case BuiltInNumWorkgroups: return "NumWorkgroups";
+ case BuiltInWorkgroupSize: return "WorkgroupSize";
+ case BuiltInWorkgroupId: return "WorkgroupId";
+ case BuiltInLocalInvocationId: return "LocalInvocationId";
+ case BuiltInGlobalInvocationId: return "GlobalInvocationId";
+ case BuiltInLocalInvocationIndex: return "LocalInvocationIndex";
+ case BuiltInWorkDim: return "WorkDim";
+ case BuiltInGlobalSize: return "GlobalSize";
+ case BuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
+ case BuiltInGlobalOffset: return "GlobalOffset";
+ case BuiltInGlobalLinearId: return "GlobalLinearId";
+ case BuiltInSubgroupSize: return "SubgroupSize";
+ case BuiltInSubgroupMaxSize: return "SubgroupMaxSize";
+ case BuiltInNumSubgroups: return "NumSubgroups";
+ case BuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
+ case BuiltInSubgroupId: return "SubgroupId";
+ case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
+ case BuiltInVertexIndex: return "VertexIndex";
+ case BuiltInInstanceIndex: return "InstanceIndex";
+ case BuiltInCoreIDARM: return "CoreIDARM";
+ case BuiltInCoreCountARM: return "CoreCountARM";
+ case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
+ case BuiltInWarpIDARM: return "WarpIDARM";
+ case BuiltInWarpMaxIDARM: return "WarpMaxIDARM";
+ case BuiltInSubgroupEqMask: return "SubgroupEqMask";
+ case BuiltInSubgroupGeMask: return "SubgroupGeMask";
+ case BuiltInSubgroupGtMask: return "SubgroupGtMask";
+ case BuiltInSubgroupLeMask: return "SubgroupLeMask";
+ case BuiltInSubgroupLtMask: return "SubgroupLtMask";
+ case BuiltInBaseVertex: return "BaseVertex";
+ case BuiltInBaseInstance: return "BaseInstance";
+ case BuiltInDrawIndex: return "DrawIndex";
+ case BuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
+ case BuiltInDeviceIndex: return "DeviceIndex";
+ case BuiltInViewIndex: return "ViewIndex";
+ case BuiltInShadingRateKHR: return "ShadingRateKHR";
+ case BuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
+ case BuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
+ case BuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
+ case BuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
+ case BuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
+ case BuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
+ case BuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
+ case BuiltInFragStencilRefEXT: return "FragStencilRefEXT";
+ case BuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX";
+ case BuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
+ case BuiltInViewportMaskNV: return "ViewportMaskNV";
+ case BuiltInSecondaryPositionNV: return "SecondaryPositionNV";
+ case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
+ case BuiltInPositionPerViewNV: return "PositionPerViewNV";
+ case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
+ case BuiltInFullyCoveredEXT: return "FullyCoveredEXT";
+ case BuiltInTaskCountNV: return "TaskCountNV";
+ case BuiltInPrimitiveCountNV: return "PrimitiveCountNV";
+ case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
+ case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
+ case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
+ case BuiltInLayerPerViewNV: return "LayerPerViewNV";
+ case BuiltInMeshViewCountNV: return "MeshViewCountNV";
+ case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
+ case BuiltInBaryCoordKHR: return "BaryCoordKHR";
+ case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
+ case BuiltInFragSizeEXT: return "FragSizeEXT";
+ case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
+ case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
+ case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
+ case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
+ case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
+ case BuiltInLaunchIdKHR: return "LaunchIdKHR";
+ case BuiltInLaunchSizeKHR: return "LaunchSizeKHR";
+ case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
+ case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
+ case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
+ case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
+ case BuiltInRayTminKHR: return "RayTminKHR";
+ case BuiltInRayTmaxKHR: return "RayTmaxKHR";
+ case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
+ case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
+ case BuiltInWorldToObjectKHR: return "WorldToObjectKHR";
+ case BuiltInHitTNV: return "HitTNV";
+ case BuiltInHitKindKHR: return "HitKindKHR";
+ case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
+ case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
+ case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
+ case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
+ case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
+ case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
+ case BuiltInWarpsPerSMNV: return "WarpsPerSMNV";
+ case BuiltInSMCountNV: return "SMCountNV";
+ case BuiltInWarpIDNV: return "WarpIDNV";
+ case BuiltInSMIDNV: return "SMIDNV";
+ case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
+ case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
+ case BuiltInCullMaskKHR: return "CullMaskKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* ScopeToString(Scope value) {
+ switch (value) {
+ case ScopeCrossDevice: return "CrossDevice";
+ case ScopeDevice: return "Device";
+ case ScopeWorkgroup: return "Workgroup";
+ case ScopeSubgroup: return "Subgroup";
+ case ScopeInvocation: return "Invocation";
+ case ScopeQueueFamily: return "QueueFamily";
+ case ScopeShaderCallKHR: return "ShaderCallKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* GroupOperationToString(GroupOperation value) {
+ switch (value) {
+ case GroupOperationReduce: return "Reduce";
+ case GroupOperationInclusiveScan: return "InclusiveScan";
+ case GroupOperationExclusiveScan: return "ExclusiveScan";
+ case GroupOperationClusteredReduce: return "ClusteredReduce";
+ case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV";
+ case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
+ case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
+ default: return "Unknown";
+ }
+}
+
+inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) {
+ switch (value) {
+ case KernelEnqueueFlagsNoWait: return "NoWait";
+ case KernelEnqueueFlagsWaitKernel: return "WaitKernel";
+ case KernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CapabilityToString(Capability value) {
+ switch (value) {
+ case CapabilityMatrix: return "Matrix";
+ case CapabilityShader: return "Shader";
+ case CapabilityGeometry: return "Geometry";
+ case CapabilityTessellation: return "Tessellation";
+ case CapabilityAddresses: return "Addresses";
+ case CapabilityLinkage: return "Linkage";
+ case CapabilityKernel: return "Kernel";
+ case CapabilityVector16: return "Vector16";
+ case CapabilityFloat16Buffer: return "Float16Buffer";
+ case CapabilityFloat16: return "Float16";
+ case CapabilityFloat64: return "Float64";
+ case CapabilityInt64: return "Int64";
+ case CapabilityInt64Atomics: return "Int64Atomics";
+ case CapabilityImageBasic: return "ImageBasic";
+ case CapabilityImageReadWrite: return "ImageReadWrite";
+ case CapabilityImageMipmap: return "ImageMipmap";
+ case CapabilityPipes: return "Pipes";
+ case CapabilityGroups: return "Groups";
+ case CapabilityDeviceEnqueue: return "DeviceEnqueue";
+ case CapabilityLiteralSampler: return "LiteralSampler";
+ case CapabilityAtomicStorage: return "AtomicStorage";
+ case CapabilityInt16: return "Int16";
+ case CapabilityTessellationPointSize: return "TessellationPointSize";
+ case CapabilityGeometryPointSize: return "GeometryPointSize";
+ case CapabilityImageGatherExtended: return "ImageGatherExtended";
+ case CapabilityStorageImageMultisample: return "StorageImageMultisample";
+ case CapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
+ case CapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
+ case CapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
+ case CapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
+ case CapabilityClipDistance: return "ClipDistance";
+ case CapabilityCullDistance: return "CullDistance";
+ case CapabilityImageCubeArray: return "ImageCubeArray";
+ case CapabilitySampleRateShading: return "SampleRateShading";
+ case CapabilityImageRect: return "ImageRect";
+ case CapabilitySampledRect: return "SampledRect";
+ case CapabilityGenericPointer: return "GenericPointer";
+ case CapabilityInt8: return "Int8";
+ case CapabilityInputAttachment: return "InputAttachment";
+ case CapabilitySparseResidency: return "SparseResidency";
+ case CapabilityMinLod: return "MinLod";
+ case CapabilitySampled1D: return "Sampled1D";
+ case CapabilityImage1D: return "Image1D";
+ case CapabilitySampledCubeArray: return "SampledCubeArray";
+ case CapabilitySampledBuffer: return "SampledBuffer";
+ case CapabilityImageBuffer: return "ImageBuffer";
+ case CapabilityImageMSArray: return "ImageMSArray";
+ case CapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
+ case CapabilityImageQuery: return "ImageQuery";
+ case CapabilityDerivativeControl: return "DerivativeControl";
+ case CapabilityInterpolationFunction: return "InterpolationFunction";
+ case CapabilityTransformFeedback: return "TransformFeedback";
+ case CapabilityGeometryStreams: return "GeometryStreams";
+ case CapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
+ case CapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
+ case CapabilityMultiViewport: return "MultiViewport";
+ case CapabilitySubgroupDispatch: return "SubgroupDispatch";
+ case CapabilityNamedBarrier: return "NamedBarrier";
+ case CapabilityPipeStorage: return "PipeStorage";
+ case CapabilityGroupNonUniform: return "GroupNonUniform";
+ case CapabilityGroupNonUniformVote: return "GroupNonUniformVote";
+ case CapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
+ case CapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
+ case CapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
+ case CapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
+ case CapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
+ case CapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
+ case CapabilityShaderLayer: return "ShaderLayer";
+ case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
+ case CapabilityUniformDecoration: return "UniformDecoration";
+ case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
+ case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
+ case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
+ case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
+ case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
+ case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
+ case CapabilityDrawParameters: return "DrawParameters";
+ case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
+ case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
+ case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
+ case CapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
+ case CapabilityStorageUniform16: return "StorageUniform16";
+ case CapabilityStoragePushConstant16: return "StoragePushConstant16";
+ case CapabilityStorageInputOutput16: return "StorageInputOutput16";
+ case CapabilityDeviceGroup: return "DeviceGroup";
+ case CapabilityMultiView: return "MultiView";
+ case CapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
+ case CapabilityVariablePointers: return "VariablePointers";
+ case CapabilityAtomicStorageOps: return "AtomicStorageOps";
+ case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
+ case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
+ case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
+ case CapabilityStoragePushConstant8: return "StoragePushConstant8";
+ case CapabilityDenormPreserve: return "DenormPreserve";
+ case CapabilityDenormFlushToZero: return "DenormFlushToZero";
+ case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
+ case CapabilityRoundingModeRTE: return "RoundingModeRTE";
+ case CapabilityRoundingModeRTZ: return "RoundingModeRTZ";
+ case CapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
+ case CapabilityRayQueryKHR: return "RayQueryKHR";
+ case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
+ case CapabilityRayTracingKHR: return "RayTracingKHR";
+ case CapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
+ case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
+ case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
+ case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
+ case CapabilityFloat16ImageAMD: return "Float16ImageAMD";
+ case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
+ case CapabilityFragmentMaskAMD: return "FragmentMaskAMD";
+ case CapabilityStencilExportEXT: return "StencilExportEXT";
+ case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
+ case CapabilityInt64ImageEXT: return "Int64ImageEXT";
+ case CapabilityShaderClockKHR: return "ShaderClockKHR";
+ case CapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
+ case CapabilityQuadControlKHR: return "QuadControlKHR";
+ case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
+ case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
+ case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
+ case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV";
+ case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
+ case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
+ case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
+ case CapabilityMeshShadingNV: return "MeshShadingNV";
+ case CapabilityImageFootprintNV: return "ImageFootprintNV";
+ case CapabilityMeshShadingEXT: return "MeshShadingEXT";
+ case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
+ case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
+ case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
+ case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
+ case CapabilityShaderNonUniform: return "ShaderNonUniform";
+ case CapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray";
+ case CapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
+ case CapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
+ case CapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
+ case CapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
+ case CapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
+ case CapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
+ case CapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
+ case CapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
+ case CapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
+ case CapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
+ case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
+ case CapabilityRayTracingNV: return "RayTracingNV";
+ case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
+ case CapabilityVulkanMemoryModel: return "VulkanMemoryModel";
+ case CapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
+ case CapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
+ case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
+ case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
+ case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
+ case CapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
+ case CapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
+ case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
+ case CapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
+ case CapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation";
+ case CapabilityDisplacementMicromapNV: return "DisplacementMicromapNV";
+ case CapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
+ case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
+ case CapabilityBindlessTextureNV: return "BindlessTextureNV";
+ case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
+ case CapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
+ case CapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
+ case CapabilityRawAccessChainsNV: return "RawAccessChainsNV";
+ case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
+ case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
+ case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
+ case CapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
+ case CapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
+ case CapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
+ case CapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
+ case CapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
+ case CapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
+ case CapabilityAsmINTEL: return "AsmINTEL";
+ case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
+ case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
+ case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
+ case CapabilityVectorComputeINTEL: return "VectorComputeINTEL";
+ case CapabilityVectorAnyINTEL: return "VectorAnyINTEL";
+ case CapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
+ case CapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
+ case CapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
+ case CapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
+ case CapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
+ case CapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
+ case CapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
+ case CapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
+ case CapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
+ case CapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
+ case CapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
+ case CapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
+ case CapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
+ case CapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
+ case CapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
+ case CapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
+ case CapabilityLoopFuseINTEL: return "LoopFuseINTEL";
+ case CapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL";
+ case CapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
+ case CapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
+ case CapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
+ case CapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
+ case CapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL";
+ case CapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
+ case CapabilityIOPipesINTEL: return "IOPipesINTEL";
+ case CapabilityBlockingPipesINTEL: return "BlockingPipesINTEL";
+ case CapabilityFPGARegINTEL: return "FPGARegINTEL";
+ case CapabilityDotProductInputAll: return "DotProductInputAll";
+ case CapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit";
+ case CapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
+ case CapabilityDotProduct: return "DotProduct";
+ case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
+ case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
+ case CapabilityBitInstructions: return "BitInstructions";
+ case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
+ case CapabilityFloatControls2: return "FloatControls2";
+ case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
+ case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
+ case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
+ case CapabilityOptNoneINTEL: return "OptNoneINTEL";
+ case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
+ case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
+ case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
+ case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
+ case CapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
+ case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
+ case CapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
+ case CapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
+ case CapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
+ case CapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
+ case CapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
+ case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
+ case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
+ case CapabilityCacheControlsINTEL: return "CacheControlsINTEL";
+ case CapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryIntersectionToString(RayQueryIntersection value) {
+ switch (value) {
+ case RayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
+ case RayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) {
+ switch (value) {
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
+ case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) {
+ switch (value) {
+ case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
+ case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPDenormModeToString(FPDenormMode value) {
+ switch (value) {
+ case FPDenormModePreserve: return "Preserve";
+ case FPDenormModeFlushToZero: return "FlushToZero";
+ default: return "Unknown";
+ }
+}
+
+inline const char* FPOperationModeToString(FPOperationMode value) {
+ switch (value) {
+ case FPOperationModeIEEE: return "IEEE";
+ case FPOperationModeALT: return "ALT";
+ default: return "Unknown";
+ }
+}
+
+inline const char* QuantizationModesToString(QuantizationModes value) {
+ switch (value) {
+ case QuantizationModesTRN: return "TRN";
+ case QuantizationModesTRN_ZERO: return "TRN_ZERO";
+ case QuantizationModesRND: return "RND";
+ case QuantizationModesRND_ZERO: return "RND_ZERO";
+ case QuantizationModesRND_INF: return "RND_INF";
+ case QuantizationModesRND_MIN_INF: return "RND_MIN_INF";
+ case QuantizationModesRND_CONV: return "RND_CONV";
+ case QuantizationModesRND_CONV_ODD: return "RND_CONV_ODD";
+ default: return "Unknown";
+ }
+}
+
+inline const char* OverflowModesToString(OverflowModes value) {
+ switch (value) {
+ case OverflowModesWRAP: return "WRAP";
+ case OverflowModesSAT: return "SAT";
+ case OverflowModesSAT_ZERO: return "SAT_ZERO";
+ case OverflowModesSAT_SYM: return "SAT_SYM";
+ default: return "Unknown";
+ }
+}
+
+inline const char* PackedVectorFormatToString(PackedVectorFormat value) {
+ switch (value) {
+ case PackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) {
+ switch (value) {
+ case CooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR";
+ case CooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) {
+ switch (value) {
+ case CooperativeMatrixUseMatrixAKHR: return "MatrixAKHR";
+ case CooperativeMatrixUseMatrixBKHR: return "MatrixBKHR";
+ case CooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
+ default: return "Unknown";
+ }
+}
+
+inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) {
+ switch (value) {
+ case InitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
+ case InitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* HostAccessQualifierToString(HostAccessQualifier value) {
+ switch (value) {
+ case HostAccessQualifierNoneINTEL: return "NoneINTEL";
+ case HostAccessQualifierReadINTEL: return "ReadINTEL";
+ case HostAccessQualifierWriteINTEL: return "WriteINTEL";
+ case HostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* LoadCacheControlToString(LoadCacheControl value) {
+ switch (value) {
+ case LoadCacheControlUncachedINTEL: return "UncachedINTEL";
+ case LoadCacheControlCachedINTEL: return "CachedINTEL";
+ case LoadCacheControlStreamingINTEL: return "StreamingINTEL";
+ case LoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
+ case LoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* StoreCacheControlToString(StoreCacheControl value) {
+ switch (value) {
+ case StoreCacheControlUncachedINTEL: return "UncachedINTEL";
+ case StoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
+ case StoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
+ case StoreCacheControlStreamingINTEL: return "StreamingINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) {
+ switch (value) {
+ case NamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
+ default: return "Unknown";
+ }
+}
+
+inline const char* OpToString(Op value) {
+ switch (value) {
+ case OpNop: return "OpNop";
+ case OpUndef: return "OpUndef";
+ case OpSourceContinued: return "OpSourceContinued";
+ case OpSource: return "OpSource";
+ case OpSourceExtension: return "OpSourceExtension";
+ case OpName: return "OpName";
+ case OpMemberName: return "OpMemberName";
+ case OpString: return "OpString";
+ case OpLine: return "OpLine";
+ case OpExtension: return "OpExtension";
+ case OpExtInstImport: return "OpExtInstImport";
+ case OpExtInst: return "OpExtInst";
+ case OpMemoryModel: return "OpMemoryModel";
+ case OpEntryPoint: return "OpEntryPoint";
+ case OpExecutionMode: return "OpExecutionMode";
+ case OpCapability: return "OpCapability";
+ case OpTypeVoid: return "OpTypeVoid";
+ case OpTypeBool: return "OpTypeBool";
+ case OpTypeInt: return "OpTypeInt";
+ case OpTypeFloat: return "OpTypeFloat";
+ case OpTypeVector: return "OpTypeVector";
+ case OpTypeMatrix: return "OpTypeMatrix";
+ case OpTypeImage: return "OpTypeImage";
+ case OpTypeSampler: return "OpTypeSampler";
+ case OpTypeSampledImage: return "OpTypeSampledImage";
+ case OpTypeArray: return "OpTypeArray";
+ case OpTypeRuntimeArray: return "OpTypeRuntimeArray";
+ case OpTypeStruct: return "OpTypeStruct";
+ case OpTypeOpaque: return "OpTypeOpaque";
+ case OpTypePointer: return "OpTypePointer";
+ case OpTypeFunction: return "OpTypeFunction";
+ case OpTypeEvent: return "OpTypeEvent";
+ case OpTypeDeviceEvent: return "OpTypeDeviceEvent";
+ case OpTypeReserveId: return "OpTypeReserveId";
+ case OpTypeQueue: return "OpTypeQueue";
+ case OpTypePipe: return "OpTypePipe";
+ case OpTypeForwardPointer: return "OpTypeForwardPointer";
+ case OpConstantTrue: return "OpConstantTrue";
+ case OpConstantFalse: return "OpConstantFalse";
+ case OpConstant: return "OpConstant";
+ case OpConstantComposite: return "OpConstantComposite";
+ case OpConstantSampler: return "OpConstantSampler";
+ case OpConstantNull: return "OpConstantNull";
+ case OpSpecConstantTrue: return "OpSpecConstantTrue";
+ case OpSpecConstantFalse: return "OpSpecConstantFalse";
+ case OpSpecConstant: return "OpSpecConstant";
+ case OpSpecConstantComposite: return "OpSpecConstantComposite";
+ case OpSpecConstantOp: return "OpSpecConstantOp";
+ case OpFunction: return "OpFunction";
+ case OpFunctionParameter: return "OpFunctionParameter";
+ case OpFunctionEnd: return "OpFunctionEnd";
+ case OpFunctionCall: return "OpFunctionCall";
+ case OpVariable: return "OpVariable";
+ case OpImageTexelPointer: return "OpImageTexelPointer";
+ case OpLoad: return "OpLoad";
+ case OpStore: return "OpStore";
+ case OpCopyMemory: return "OpCopyMemory";
+ case OpCopyMemorySized: return "OpCopyMemorySized";
+ case OpAccessChain: return "OpAccessChain";
+ case OpInBoundsAccessChain: return "OpInBoundsAccessChain";
+ case OpPtrAccessChain: return "OpPtrAccessChain";
+ case OpArrayLength: return "OpArrayLength";
+ case OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
+ case OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
+ case OpDecorate: return "OpDecorate";
+ case OpMemberDecorate: return "OpMemberDecorate";
+ case OpDecorationGroup: return "OpDecorationGroup";
+ case OpGroupDecorate: return "OpGroupDecorate";
+ case OpGroupMemberDecorate: return "OpGroupMemberDecorate";
+ case OpVectorExtractDynamic: return "OpVectorExtractDynamic";
+ case OpVectorInsertDynamic: return "OpVectorInsertDynamic";
+ case OpVectorShuffle: return "OpVectorShuffle";
+ case OpCompositeConstruct: return "OpCompositeConstruct";
+ case OpCompositeExtract: return "OpCompositeExtract";
+ case OpCompositeInsert: return "OpCompositeInsert";
+ case OpCopyObject: return "OpCopyObject";
+ case OpTranspose: return "OpTranspose";
+ case OpSampledImage: return "OpSampledImage";
+ case OpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
+ case OpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
+ case OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
+ case OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
+ case OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
+ case OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
+ case OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
+ case OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
+ case OpImageFetch: return "OpImageFetch";
+ case OpImageGather: return "OpImageGather";
+ case OpImageDrefGather: return "OpImageDrefGather";
+ case OpImageRead: return "OpImageRead";
+ case OpImageWrite: return "OpImageWrite";
+ case OpImage: return "OpImage";
+ case OpImageQueryFormat: return "OpImageQueryFormat";
+ case OpImageQueryOrder: return "OpImageQueryOrder";
+ case OpImageQuerySizeLod: return "OpImageQuerySizeLod";
+ case OpImageQuerySize: return "OpImageQuerySize";
+ case OpImageQueryLod: return "OpImageQueryLod";
+ case OpImageQueryLevels: return "OpImageQueryLevels";
+ case OpImageQuerySamples: return "OpImageQuerySamples";
+ case OpConvertFToU: return "OpConvertFToU";
+ case OpConvertFToS: return "OpConvertFToS";
+ case OpConvertSToF: return "OpConvertSToF";
+ case OpConvertUToF: return "OpConvertUToF";
+ case OpUConvert: return "OpUConvert";
+ case OpSConvert: return "OpSConvert";
+ case OpFConvert: return "OpFConvert";
+ case OpQuantizeToF16: return "OpQuantizeToF16";
+ case OpConvertPtrToU: return "OpConvertPtrToU";
+ case OpSatConvertSToU: return "OpSatConvertSToU";
+ case OpSatConvertUToS: return "OpSatConvertUToS";
+ case OpConvertUToPtr: return "OpConvertUToPtr";
+ case OpPtrCastToGeneric: return "OpPtrCastToGeneric";
+ case OpGenericCastToPtr: return "OpGenericCastToPtr";
+ case OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
+ case OpBitcast: return "OpBitcast";
+ case OpSNegate: return "OpSNegate";
+ case OpFNegate: return "OpFNegate";
+ case OpIAdd: return "OpIAdd";
+ case OpFAdd: return "OpFAdd";
+ case OpISub: return "OpISub";
+ case OpFSub: return "OpFSub";
+ case OpIMul: return "OpIMul";
+ case OpFMul: return "OpFMul";
+ case OpUDiv: return "OpUDiv";
+ case OpSDiv: return "OpSDiv";
+ case OpFDiv: return "OpFDiv";
+ case OpUMod: return "OpUMod";
+ case OpSRem: return "OpSRem";
+ case OpSMod: return "OpSMod";
+ case OpFRem: return "OpFRem";
+ case OpFMod: return "OpFMod";
+ case OpVectorTimesScalar: return "OpVectorTimesScalar";
+ case OpMatrixTimesScalar: return "OpMatrixTimesScalar";
+ case OpVectorTimesMatrix: return "OpVectorTimesMatrix";
+ case OpMatrixTimesVector: return "OpMatrixTimesVector";
+ case OpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
+ case OpOuterProduct: return "OpOuterProduct";
+ case OpDot: return "OpDot";
+ case OpIAddCarry: return "OpIAddCarry";
+ case OpISubBorrow: return "OpISubBorrow";
+ case OpUMulExtended: return "OpUMulExtended";
+ case OpSMulExtended: return "OpSMulExtended";
+ case OpAny: return "OpAny";
+ case OpAll: return "OpAll";
+ case OpIsNan: return "OpIsNan";
+ case OpIsInf: return "OpIsInf";
+ case OpIsFinite: return "OpIsFinite";
+ case OpIsNormal: return "OpIsNormal";
+ case OpSignBitSet: return "OpSignBitSet";
+ case OpLessOrGreater: return "OpLessOrGreater";
+ case OpOrdered: return "OpOrdered";
+ case OpUnordered: return "OpUnordered";
+ case OpLogicalEqual: return "OpLogicalEqual";
+ case OpLogicalNotEqual: return "OpLogicalNotEqual";
+ case OpLogicalOr: return "OpLogicalOr";
+ case OpLogicalAnd: return "OpLogicalAnd";
+ case OpLogicalNot: return "OpLogicalNot";
+ case OpSelect: return "OpSelect";
+ case OpIEqual: return "OpIEqual";
+ case OpINotEqual: return "OpINotEqual";
+ case OpUGreaterThan: return "OpUGreaterThan";
+ case OpSGreaterThan: return "OpSGreaterThan";
+ case OpUGreaterThanEqual: return "OpUGreaterThanEqual";
+ case OpSGreaterThanEqual: return "OpSGreaterThanEqual";
+ case OpULessThan: return "OpULessThan";
+ case OpSLessThan: return "OpSLessThan";
+ case OpULessThanEqual: return "OpULessThanEqual";
+ case OpSLessThanEqual: return "OpSLessThanEqual";
+ case OpFOrdEqual: return "OpFOrdEqual";
+ case OpFUnordEqual: return "OpFUnordEqual";
+ case OpFOrdNotEqual: return "OpFOrdNotEqual";
+ case OpFUnordNotEqual: return "OpFUnordNotEqual";
+ case OpFOrdLessThan: return "OpFOrdLessThan";
+ case OpFUnordLessThan: return "OpFUnordLessThan";
+ case OpFOrdGreaterThan: return "OpFOrdGreaterThan";
+ case OpFUnordGreaterThan: return "OpFUnordGreaterThan";
+ case OpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
+ case OpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
+ case OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
+ case OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
+ case OpShiftRightLogical: return "OpShiftRightLogical";
+ case OpShiftRightArithmetic: return "OpShiftRightArithmetic";
+ case OpShiftLeftLogical: return "OpShiftLeftLogical";
+ case OpBitwiseOr: return "OpBitwiseOr";
+ case OpBitwiseXor: return "OpBitwiseXor";
+ case OpBitwiseAnd: return "OpBitwiseAnd";
+ case OpNot: return "OpNot";
+ case OpBitFieldInsert: return "OpBitFieldInsert";
+ case OpBitFieldSExtract: return "OpBitFieldSExtract";
+ case OpBitFieldUExtract: return "OpBitFieldUExtract";
+ case OpBitReverse: return "OpBitReverse";
+ case OpBitCount: return "OpBitCount";
+ case OpDPdx: return "OpDPdx";
+ case OpDPdy: return "OpDPdy";
+ case OpFwidth: return "OpFwidth";
+ case OpDPdxFine: return "OpDPdxFine";
+ case OpDPdyFine: return "OpDPdyFine";
+ case OpFwidthFine: return "OpFwidthFine";
+ case OpDPdxCoarse: return "OpDPdxCoarse";
+ case OpDPdyCoarse: return "OpDPdyCoarse";
+ case OpFwidthCoarse: return "OpFwidthCoarse";
+ case OpEmitVertex: return "OpEmitVertex";
+ case OpEndPrimitive: return "OpEndPrimitive";
+ case OpEmitStreamVertex: return "OpEmitStreamVertex";
+ case OpEndStreamPrimitive: return "OpEndStreamPrimitive";
+ case OpControlBarrier: return "OpControlBarrier";
+ case OpMemoryBarrier: return "OpMemoryBarrier";
+ case OpAtomicLoad: return "OpAtomicLoad";
+ case OpAtomicStore: return "OpAtomicStore";
+ case OpAtomicExchange: return "OpAtomicExchange";
+ case OpAtomicCompareExchange: return "OpAtomicCompareExchange";
+ case OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
+ case OpAtomicIIncrement: return "OpAtomicIIncrement";
+ case OpAtomicIDecrement: return "OpAtomicIDecrement";
+ case OpAtomicIAdd: return "OpAtomicIAdd";
+ case OpAtomicISub: return "OpAtomicISub";
+ case OpAtomicSMin: return "OpAtomicSMin";
+ case OpAtomicUMin: return "OpAtomicUMin";
+ case OpAtomicSMax: return "OpAtomicSMax";
+ case OpAtomicUMax: return "OpAtomicUMax";
+ case OpAtomicAnd: return "OpAtomicAnd";
+ case OpAtomicOr: return "OpAtomicOr";
+ case OpAtomicXor: return "OpAtomicXor";
+ case OpPhi: return "OpPhi";
+ case OpLoopMerge: return "OpLoopMerge";
+ case OpSelectionMerge: return "OpSelectionMerge";
+ case OpLabel: return "OpLabel";
+ case OpBranch: return "OpBranch";
+ case OpBranchConditional: return "OpBranchConditional";
+ case OpSwitch: return "OpSwitch";
+ case OpKill: return "OpKill";
+ case OpReturn: return "OpReturn";
+ case OpReturnValue: return "OpReturnValue";
+ case OpUnreachable: return "OpUnreachable";
+ case OpLifetimeStart: return "OpLifetimeStart";
+ case OpLifetimeStop: return "OpLifetimeStop";
+ case OpGroupAsyncCopy: return "OpGroupAsyncCopy";
+ case OpGroupWaitEvents: return "OpGroupWaitEvents";
+ case OpGroupAll: return "OpGroupAll";
+ case OpGroupAny: return "OpGroupAny";
+ case OpGroupBroadcast: return "OpGroupBroadcast";
+ case OpGroupIAdd: return "OpGroupIAdd";
+ case OpGroupFAdd: return "OpGroupFAdd";
+ case OpGroupFMin: return "OpGroupFMin";
+ case OpGroupUMin: return "OpGroupUMin";
+ case OpGroupSMin: return "OpGroupSMin";
+ case OpGroupFMax: return "OpGroupFMax";
+ case OpGroupUMax: return "OpGroupUMax";
+ case OpGroupSMax: return "OpGroupSMax";
+ case OpReadPipe: return "OpReadPipe";
+ case OpWritePipe: return "OpWritePipe";
+ case OpReservedReadPipe: return "OpReservedReadPipe";
+ case OpReservedWritePipe: return "OpReservedWritePipe";
+ case OpReserveReadPipePackets: return "OpReserveReadPipePackets";
+ case OpReserveWritePipePackets: return "OpReserveWritePipePackets";
+ case OpCommitReadPipe: return "OpCommitReadPipe";
+ case OpCommitWritePipe: return "OpCommitWritePipe";
+ case OpIsValidReserveId: return "OpIsValidReserveId";
+ case OpGetNumPipePackets: return "OpGetNumPipePackets";
+ case OpGetMaxPipePackets: return "OpGetMaxPipePackets";
+ case OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
+ case OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
+ case OpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
+ case OpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
+ case OpEnqueueMarker: return "OpEnqueueMarker";
+ case OpEnqueueKernel: return "OpEnqueueKernel";
+ case OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
+ case OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
+ case OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
+ case OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
+ case OpRetainEvent: return "OpRetainEvent";
+ case OpReleaseEvent: return "OpReleaseEvent";
+ case OpCreateUserEvent: return "OpCreateUserEvent";
+ case OpIsValidEvent: return "OpIsValidEvent";
+ case OpSetUserEventStatus: return "OpSetUserEventStatus";
+ case OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
+ case OpGetDefaultQueue: return "OpGetDefaultQueue";
+ case OpBuildNDRange: return "OpBuildNDRange";
+ case OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
+ case OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
+ case OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
+ case OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
+ case OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
+ case OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
+ case OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
+ case OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
+ case OpImageSparseFetch: return "OpImageSparseFetch";
+ case OpImageSparseGather: return "OpImageSparseGather";
+ case OpImageSparseDrefGather: return "OpImageSparseDrefGather";
+ case OpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
+ case OpNoLine: return "OpNoLine";
+ case OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
+ case OpAtomicFlagClear: return "OpAtomicFlagClear";
+ case OpImageSparseRead: return "OpImageSparseRead";
+ case OpSizeOf: return "OpSizeOf";
+ case OpTypePipeStorage: return "OpTypePipeStorage";
+ case OpConstantPipeStorage: return "OpConstantPipeStorage";
+ case OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
+ case OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
+ case OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
+ case OpTypeNamedBarrier: return "OpTypeNamedBarrier";
+ case OpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
+ case OpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
+ case OpModuleProcessed: return "OpModuleProcessed";
+ case OpExecutionModeId: return "OpExecutionModeId";
+ case OpDecorateId: return "OpDecorateId";
+ case OpGroupNonUniformElect: return "OpGroupNonUniformElect";
+ case OpGroupNonUniformAll: return "OpGroupNonUniformAll";
+ case OpGroupNonUniformAny: return "OpGroupNonUniformAny";
+ case OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
+ case OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
+ case OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
+ case OpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
+ case OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
+ case OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
+ case OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
+ case OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
+ case OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
+ case OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
+ case OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
+ case OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
+ case OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
+ case OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
+ case OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
+ case OpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
+ case OpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
+ case OpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
+ case OpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
+ case OpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
+ case OpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
+ case OpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
+ case OpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
+ case OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
+ case OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
+ case OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
+ case OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
+ case OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
+ case OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
+ case OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
+ case OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
+ case OpCopyLogical: return "OpCopyLogical";
+ case OpPtrEqual: return "OpPtrEqual";
+ case OpPtrNotEqual: return "OpPtrNotEqual";
+ case OpPtrDiff: return "OpPtrDiff";
+ case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
+ case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
+ case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
+ case OpTerminateInvocation: return "OpTerminateInvocation";
+ case OpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
+ case OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
+ case OpSubgroupAllKHR: return "OpSubgroupAllKHR";
+ case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
+ case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
+ case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
+ case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
+ case OpTraceRayKHR: return "OpTraceRayKHR";
+ case OpExecuteCallableKHR: return "OpExecuteCallableKHR";
+ case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
+ case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
+ case OpTerminateRayKHR: return "OpTerminateRayKHR";
+ case OpSDot: return "OpSDot";
+ case OpUDot: return "OpUDot";
+ case OpSUDot: return "OpSUDot";
+ case OpSDotAccSat: return "OpSDotAccSat";
+ case OpUDotAccSat: return "OpUDotAccSat";
+ case OpSUDotAccSat: return "OpSUDotAccSat";
+ case OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
+ case OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
+ case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
+ case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
+ case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
+ case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
+ case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
+ case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
+ case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
+ case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
+ case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
+ case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
+ case OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
+ case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
+ case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
+ case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
+ case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
+ case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
+ case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
+ case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
+ case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
+ case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
+ case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
+ case OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
+ case OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
+ case OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
+ case OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
+ case OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
+ case OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
+ case OpFragmentFetchAMD: return "OpFragmentFetchAMD";
+ case OpReadClockKHR: return "OpReadClockKHR";
+ case OpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX";
+ case OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
+ case OpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX";
+ case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
+ case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
+ case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
+ case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
+ case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
+ case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
+ case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
+ case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
+ case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
+ case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
+ case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
+ case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
+ case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
+ case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
+ case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
+ case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
+ case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
+ case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
+ case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
+ case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
+ case OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
+ case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
+ case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
+ case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
+ case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
+ case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
+ case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
+ case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
+ case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
+ case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
+ case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
+ case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
+ case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
+ case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
+ case OpTypeHitObjectNV: return "OpTypeHitObjectNV";
+ case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
+ case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
+ case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
+ case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
+ case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
+ case OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
+ case OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
+ case OpReportIntersectionKHR: return "OpReportIntersectionKHR";
+ case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
+ case OpTerminateRayNV: return "OpTerminateRayNV";
+ case OpTraceNV: return "OpTraceNV";
+ case OpTraceMotionNV: return "OpTraceMotionNV";
+ case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
+ case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
+ case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
+ case OpExecuteCallableNV: return "OpExecuteCallableNV";
+ case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
+ case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
+ case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
+ case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
+ case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
+ case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
+ case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
+ case OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
+ case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
+ case OpConvertUToImageNV: return "OpConvertUToImageNV";
+ case OpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
+ case OpConvertImageToUNV: return "OpConvertImageToUNV";
+ case OpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
+ case OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
+ case OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
+ case OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
+ case OpRawAccessChainNV: return "OpRawAccessChainNV";
+ case OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
+ case OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
+ case OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
+ case OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
+ case OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
+ case OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
+ case OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
+ case OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
+ case OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
+ case OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
+ case OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
+ case OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
+ case OpAbsISubINTEL: return "OpAbsISubINTEL";
+ case OpAbsUSubINTEL: return "OpAbsUSubINTEL";
+ case OpIAddSatINTEL: return "OpIAddSatINTEL";
+ case OpUAddSatINTEL: return "OpUAddSatINTEL";
+ case OpIAverageINTEL: return "OpIAverageINTEL";
+ case OpUAverageINTEL: return "OpUAverageINTEL";
+ case OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
+ case OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
+ case OpISubSatINTEL: return "OpISubSatINTEL";
+ case OpUSubSatINTEL: return "OpUSubSatINTEL";
+ case OpIMul32x16INTEL: return "OpIMul32x16INTEL";
+ case OpUMul32x16INTEL: return "OpUMul32x16INTEL";
+ case OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
+ case OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
+ case OpAsmTargetINTEL: return "OpAsmTargetINTEL";
+ case OpAsmINTEL: return "OpAsmINTEL";
+ case OpAsmCallINTEL: return "OpAsmCallINTEL";
+ case OpAtomicFMinEXT: return "OpAtomicFMinEXT";
+ case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
+ case OpAssumeTrueKHR: return "OpAssumeTrueKHR";
+ case OpExpectKHR: return "OpExpectKHR";
+ case OpDecorateString: return "OpDecorateString";
+ case OpMemberDecorateString: return "OpMemberDecorateString";
+ case OpVmeImageINTEL: return "OpVmeImageINTEL";
+ case OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
+ case OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
+ case OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
+ case OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
+ case OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
+ case OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
+ case OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
+ case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
+ case OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
+ case OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
+ case OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
+ case OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
+ case OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
+ case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
+ case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
+ case OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
+ case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
+ case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
+ case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
+ case OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
+ case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
+ case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
+ case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
+ case OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
+ case OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
+ case OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
+ case OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
+ case OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
+ case OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
+ case OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
+ case OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
+ case OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
+ case OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
+ case OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
+ case OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
+ case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
+ case OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
+ case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
+ case OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
+ case OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
+ case OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
+ case OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
+ case OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
+ case OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
+ case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
+ case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
+ case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
+ case OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
+ case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
+ case OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
+ case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
+ case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
+ case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
+ case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
+ case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
+ case OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
+ case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
+ case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
+ case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
+ case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
+ case OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
+ case OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
+ case OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
+ case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
+ case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
+ case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
+ case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
+ case OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
+ case OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
+ case OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
+ case OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
+ case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
+ case OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
+ case OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
+ case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
+ case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
+ case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
+ case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
+ case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
+ case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
+ case OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
+ case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
+ case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
+ case OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
+ case OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
+ case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
+ case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
+ case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
+ case OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
+ case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
+ case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
+ case OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
+ case OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
+ case OpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
+ case OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
+ case OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
+ case OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
+ case OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
+ case OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
+ case OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
+ case OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
+ case OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
+ case OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
+ case OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
+ case OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
+ case OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
+ case OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
+ case OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
+ case OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
+ case OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
+ case OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
+ case OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
+ case OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
+ case OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
+ case OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
+ case OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
+ case OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
+ case OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
+ case OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
+ case OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
+ case OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
+ case OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
+ case OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
+ case OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
+ case OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
+ case OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
+ case OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
+ case OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
+ case OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
+ case OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
+ case OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
+ case OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
+ case OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
+ case OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
+ case OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
+ case OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
+ case OpLoopControlINTEL: return "OpLoopControlINTEL";
+ case OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
+ case OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
+ case OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
+ case OpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
+ case OpFixedRecipINTEL: return "OpFixedRecipINTEL";
+ case OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
+ case OpFixedSinINTEL: return "OpFixedSinINTEL";
+ case OpFixedCosINTEL: return "OpFixedCosINTEL";
+ case OpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
+ case OpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
+ case OpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
+ case OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
+ case OpFixedLogINTEL: return "OpFixedLogINTEL";
+ case OpFixedExpINTEL: return "OpFixedExpINTEL";
+ case OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
+ case OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
+ case OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
+ case OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
+ case OpFPGARegINTEL: return "OpFPGARegINTEL";
+ case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
+ case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
+ case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
+ case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
+ case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
+ case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
+ case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
+ case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
+ case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
+ case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
+ case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
+ case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
+ case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
+ case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
+ case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
+ case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
+ case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
+ case OpAtomicFAddEXT: return "OpAtomicFAddEXT";
+ case OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
+ case OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
+ case OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
+ case OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
+ case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
+ case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
+ case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
+ case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
+ case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
+ case OpGroupIMulKHR: return "OpGroupIMulKHR";
+ case OpGroupFMulKHR: return "OpGroupFMulKHR";
+ case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
+ case OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
+ case OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
+ case OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
+ case OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
+ case OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
+ case OpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
+ case OpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
+ default: return "Unknown";
+ }
+}
+
#endif /* SPV_ENABLE_UTILITY_CODE */
// Overload bitwise operators for mask bit combining
diff --git a/third_party/vulkan-deps/spirv-headers/src/tools/buildHeaders/header.cpp b/third_party/vulkan-deps/spirv-headers/src/tools/buildHeaders/header.cpp
index d125a79aab..9dd4e40d73 100644
--- a/third_party/vulkan-deps/spirv-headers/src/tools/buildHeaders/header.cpp
+++ b/third_party/vulkan-deps/spirv-headers/src/tools/buildHeaders/header.cpp
@@ -98,7 +98,7 @@ namespace {
virtual void printEpilogue(std::ostream&) const { }
virtual void printMeta(std::ostream&) const;
virtual void printTypes(std::ostream&) const { }
- virtual void printHasResultType(std::ostream&) const { };
+ virtual void printUtility(std::ostream&) const { };
virtual std::string escapeComment(const std::string& s) const;
@@ -369,7 +369,7 @@ IN THE MATERIALS.
printTypes(out);
printMeta(out);
printDefs(out);
- printHasResultType(out);
+ printUtility(out);
printEpilogue(out);
}
@@ -503,8 +503,20 @@ IN THE MATERIALS.
virtual std::string fmtEnumUse(const std::string& opPrefix, const std::string& name) const { return pre() + name; }
- virtual void printHasResultType(std::ostream& out) const override
+ virtual void printUtility(std::ostream& out) const override
{
+ out << "#ifdef SPV_ENABLE_UTILITY_CODE" << std::endl;
+ out << "#ifndef __cplusplus" << std::endl;
+ out << "#include <stdbool.h>" << std::endl;
+ out << "#endif" << std::endl;
+
+ printHasResultType(out);
+ printStringFunctions(out);
+
+ out << "#endif /* SPV_ENABLE_UTILITY_CODE */" << std::endl << std::endl;
+ }
+
+ void printHasResultType(std::ostream& out) const {
const Json::Value& enums = spvRoot["spv"]["enum"];
std::set<unsigned> seenValues;
@@ -515,10 +527,7 @@ IN THE MATERIALS.
continue;
}
- out << "#ifdef SPV_ENABLE_UTILITY_CODE" << std::endl;
- out << "#ifndef __cplusplus" << std::endl;
- out << "#include <stdbool.h>" << std::endl;
- out << "#endif" << std::endl;
+
out << "inline void " << pre() << "HasResultAndType(" << pre() << opName << " opcode, bool *hasResult, bool *hasResultType) {" << std::endl;
out << " *hasResult = *hasResultType = false;" << std::endl;
out << " switch (opcode) {" << std::endl;
@@ -539,7 +548,43 @@ IN THE MATERIALS.
out << " }" << std::endl;
out << "}" << std::endl;
- out << "#endif /* SPV_ENABLE_UTILITY_CODE */" << std::endl << std::endl;
+ }
+ }
+
+ void printStringFunctions(std::ostream& out) const {
+ const Json::Value& enums = spvRoot["spv"]["enum"];
+
+ for (auto it = enums.begin(); it != enums.end(); ++it) {
+ const auto type = (*it)["Type"].asString();
+ // Skip bitmasks
+ if (type == "Bit") {
+ continue;
+ }
+ const auto name = (*it)["Name"].asString();
+ const auto sorted = getSortedVals((*it)["Values"]);
+
+ std::set<unsigned> seenValues;
+ std::string fullName = pre() + name;
+
+ out << "inline const char* " << fullName << "ToString(" << fullName << " value) {" << std::endl;
+ out << " switch (value) {" << std::endl;
+ for (const auto& v : sorted) {
+ // Filter out duplicate enum values, which would break the switch statement.
+ // These are probably just extension enums promoted to core.
+ if (seenValues.count(v.first)) {
+ continue;
+ }
+ seenValues.insert(v.first);
+
+ std::string label{name + v.second};
+ if (name == "Op") {
+ label = v.second;
+ }
+ out << " " << "case " << pre() << label << ": return " << "\"" << v.second << "\";" << std::endl;
+ }
+ out << " default: return \"Unknown\";" << std::endl;
+ out << " }" << std::endl;
+ out << "}" << std::endl << std::endl;
}
}
};
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/autoroll.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/autoroll.yml
index ed33622be1..3954928d99 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/autoroll.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/autoroll.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
# Checkout the depot tools they are needed by roll_deps.sh
- name: Checkout depot tools
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/bazel.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/bazel.yml
index 43c99d667b..ee8a9d531e 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/bazel.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/bazel.yml
@@ -18,7 +18,7 @@ jobs:
runs-on: ${{matrix.os}}
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
fetch-depth: '0'
- name: Download dependencies
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/ios.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/ios.yml
index feb64a7755..87ccd2d169 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/ios.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/ios.yml
@@ -11,7 +11,7 @@ jobs:
matrix:
os: [ macos-12, macos-13 ]
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- uses: lukka/get-cmake@4931ab1fc1604964c055eb330edb3f6b26ba0cfa # v3.29.2
- name: Download dependencies
run: python3 utils/git-sync-deps
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/release.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/release.yml
index 583c8f1fd6..22cf61e963 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/release.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/release.yml
@@ -13,7 +13,7 @@ jobs:
prepare-release-job:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: Prepare CHANGELOG for version
run: |
python utils/generate_changelog.py CHANGES "${{ github.ref_name }}" VERSION_CHANGELOG
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/scorecard.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/scorecard.yml
index adcfa76773..efda65dbbc 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/scorecard.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/scorecard.yml
@@ -23,7 +23,7 @@ jobs:
steps:
- name: "Checkout code"
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
persist-credentials: false
@@ -40,7 +40,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
- uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: SARIF file
path: results.sarif
@@ -48,6 +48,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: results.sarif
diff --git a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/wasm.yml b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/wasm.yml
index 6807b3d1eb..5eeec6109d 100644
--- a/third_party/vulkan-deps/spirv-tools/src/.github/workflows/wasm.yml
+++ b/third_party/vulkan-deps/spirv-tools/src/.github/workflows/wasm.yml
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
fetch-depth: '0'
- name: Build web
diff --git a/third_party/vulkan-deps/spirv-tools/src/BUILD.gn b/third_party/vulkan-deps/spirv-tools/src/BUILD.gn
index 5d0ab86798..1a0f534fbb 100644
--- a/third_party/vulkan-deps/spirv-tools/src/BUILD.gn
+++ b/third_party/vulkan-deps/spirv-tools/src/BUILD.gn
@@ -681,10 +681,6 @@ static_library("spvtools_opt") {
"source/opt/inline_opaque_pass.h",
"source/opt/inline_pass.cpp",
"source/opt/inline_pass.h",
- "source/opt/inst_bindless_check_pass.cpp",
- "source/opt/inst_bindless_check_pass.h",
- "source/opt/inst_buff_addr_check_pass.cpp",
- "source/opt/inst_buff_addr_check_pass.h",
"source/opt/inst_debug_printf_pass.cpp",
"source/opt/inst_debug_printf_pass.h",
"source/opt/instruction.cpp",
diff --git a/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/instrument.hpp b/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/instrument.hpp
index 0a6e6306ec..d72a5d876c 100644
--- a/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/instrument.hpp
+++ b/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/instrument.hpp
@@ -22,8 +22,6 @@
// This file provides an external interface for applications that wish to
// communicate with shaders instrumented by passes created by:
//
-// CreateInstBindlessCheckPass
-// CreateInstBuffAddrCheckPass
// CreateInstDebugPrintfPass
//
// More detailed documentation of these routines can be found in optimizer.hpp
@@ -34,17 +32,12 @@ namespace spvtools {
//
// The following values provide offsets into the output buffer struct
// generated by InstrumentPass::GenDebugStreamWrite. This method is utilized
-// by InstBindlessCheckPass, InstBuffAddrCheckPass, and InstDebugPrintfPass.
+// by InstDebugPrintfPass.
//
// The 1st member of the debug output buffer contains a set of flags
// controlling the behavior of instrumentation code.
static const int kDebugOutputFlagsOffset = 0;
-// Values stored at kDebugOutputFlagsOffset
-enum kInstFlags : unsigned int {
- kInstBufferOOBEnable = 0x1,
-};
-
// The 2nd member of the debug output buffer contains the next available word
// in the data stream to be written. Shaders will atomically read and update
// this value so as not to overwrite each others records. This value must be
diff --git a/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/optimizer.hpp b/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/optimizer.hpp
index a3119d9b43..e8ac260904 100644
--- a/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/optimizer.hpp
+++ b/third_party/vulkan-deps/spirv-tools/src/include/spirv-tools/optimizer.hpp
@@ -747,53 +747,6 @@ Optimizer::PassToken CreateReduceLoadSizePass(
// them into a single instruction where possible.
Optimizer::PassToken CreateCombineAccessChainsPass();
-// Create a pass to instrument bindless descriptor checking
-// This pass instruments all bindless references to check that descriptor
-// array indices are inbounds, and if the descriptor indexing extension is
-// enabled, that the descriptor has been initialized. If the reference is
-// invalid, a record is written to the debug output buffer (if space allows)
-// and a null value is returned. This pass is designed to support bindless
-// validation in the Vulkan validation layers.
-//
-// TODO(greg-lunarg): Add support for buffer references. Currently only does
-// checking for image references.
-//
-// Dead code elimination should be run after this pass as the original,
-// potentially invalid code is not removed and could cause undefined behavior,
-// including crashes. It may also be beneficial to run Simplification
-// (ie Constant Propagation), DeadBranchElim and BlockMerge after this pass to
-// optimize instrument code involving the testing of compile-time constants.
-// It is also generally recommended that this pass (and all
-// instrumentation passes) be run after any legalization and optimization
-// passes. This will give better analysis for the instrumentation and avoid
-// potentially de-optimizing the instrument code, for example, inlining
-// the debug record output function throughout the module.
-//
-// The instrumentation will write |shader_id| in each output record
-// to identify the shader module which generated the record.
-Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id);
-
-// Create a pass to instrument physical buffer address checking
-// This pass instruments all physical buffer address references to check that
-// all referenced bytes fall in a valid buffer. If the reference is
-// invalid, a record is written to the debug output buffer (if space allows)
-// and a null value is returned. This pass is designed to support buffer
-// address validation in the Vulkan validation layers.
-//
-// Dead code elimination should be run after this pass as the original,
-// potentially invalid code is not removed and could cause undefined behavior,
-// including crashes. Instruction simplification would likely also be
-// beneficial. It is also generally recommended that this pass (and all
-// instrumentation passes) be run after any legalization and optimization
-// passes. This will give better analysis for the instrumentation and avoid
-// potentially de-optimizing the instrument code, for example, inlining
-// the debug record output function throughout the module.
-//
-// The instrumentation will read and write buffers in debug
-// descriptor set |desc_set|. It will write |shader_id| in each output record
-// to identify the shader module which generated the record.
-Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id);
-
// Create a pass to instrument OpDebugPrintf instructions.
// This pass replaces all OpDebugPrintf instructions with instructions to write
// a record containing the string id and the all specified values into a special
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/CMakeLists.txt b/third_party/vulkan-deps/spirv-tools/src/source/opt/CMakeLists.txt
index 4e7d92d5ea..3994403eaa 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/CMakeLists.txt
+++ b/third_party/vulkan-deps/spirv-tools/src/source/opt/CMakeLists.txt
@@ -64,8 +64,6 @@ set(SPIRV_TOOLS_OPT_SOURCES
inline_exhaustive_pass.h
inline_opaque_pass.h
inline_pass.h
- inst_bindless_check_pass.h
- inst_buff_addr_check_pass.h
inst_debug_printf_pass.h
instruction.h
instruction_list.h
@@ -186,8 +184,6 @@ set(SPIRV_TOOLS_OPT_SOURCES
inline_exhaustive_pass.cpp
inline_opaque_pass.cpp
inline_pass.cpp
- inst_bindless_check_pass.cpp
- inst_buff_addr_check_pass.cpp
inst_debug_printf_pass.cpp
instruction.cpp
instruction_list.cpp
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.cpp b/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.cpp
deleted file mode 100644
index 8e7d4f83e8..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.cpp
+++ /dev/null
@@ -1,761 +0,0 @@
-// Copyright (c) 2018 The Khronos Group Inc.
-// Copyright (c) 2018 Valve Corporation
-// Copyright (c) 2018 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "inst_bindless_check_pass.h"
-
-#include "source/spirv_constant.h"
-
-namespace spvtools {
-namespace opt {
-namespace {
-// Input Operand Indices
-constexpr int kSpvImageSampleImageIdInIdx = 0;
-constexpr int kSpvSampledImageImageIdInIdx = 0;
-constexpr int kSpvSampledImageSamplerIdInIdx = 1;
-constexpr int kSpvImageSampledImageIdInIdx = 0;
-constexpr int kSpvCopyObjectOperandIdInIdx = 0;
-constexpr int kSpvLoadPtrIdInIdx = 0;
-constexpr int kSpvAccessChainBaseIdInIdx = 0;
-constexpr int kSpvAccessChainIndex0IdInIdx = 1;
-constexpr int kSpvTypeArrayTypeIdInIdx = 0;
-constexpr int kSpvVariableStorageClassInIdx = 0;
-constexpr int kSpvTypePtrTypeIdInIdx = 1;
-constexpr int kSpvTypeImageDim = 1;
-constexpr int kSpvTypeImageDepth = 2;
-constexpr int kSpvTypeImageArrayed = 3;
-constexpr int kSpvTypeImageMS = 4;
-} // namespace
-
-// This is a stub function for use with Import linkage
-// clang-format off
-// GLSL:
-//bool inst_bindless_check_desc(const uint shader_id, const uint inst_num, const uvec4 stage_info, const uint desc_set,
-// const uint binding, const uint desc_index, const uint byte_offset) {
-//}
-// clang-format on
-uint32_t InstBindlessCheckPass::GenDescCheckFunctionId() {
- enum {
- kShaderId = 0,
- kInstructionIndex = 1,
- kStageInfo = 2,
- kDescSet = 3,
- kDescBinding = 4,
- kDescIndex = 5,
- kByteOffset = 6,
- kNumArgs
- };
- if (check_desc_func_id_ != 0) {
- return check_desc_func_id_;
- }
-
- analysis::TypeManager* type_mgr = context()->get_type_mgr();
- const analysis::Integer* uint_type = GetInteger(32, false);
- const analysis::Vector v4uint(uint_type, 4);
- const analysis::Type* v4uint_type = type_mgr->GetRegisteredType(&v4uint);
- std::vector<const analysis::Type*> param_types(kNumArgs, uint_type);
- param_types[2] = v4uint_type;
-
- const uint32_t func_id = TakeNextId();
- std::unique_ptr<Function> func =
- StartFunction(func_id, type_mgr->GetBoolType(), param_types);
-
- func->SetFunctionEnd(EndFunction());
-
- static const std::string func_name{"inst_bindless_check_desc"};
- context()->AddFunctionDeclaration(std::move(func));
- context()->AddDebug2Inst(NewName(func_id, func_name));
- std::vector<Operand> operands{
- {spv_operand_type_t::SPV_OPERAND_TYPE_ID, {func_id}},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_INTEGER,
- {uint32_t(spv::Decoration::LinkageAttributes)}},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_STRING,
- utils::MakeVector(func_name.c_str())},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LINKAGE_TYPE,
- {uint32_t(spv::LinkageType::Import)}},
- };
- get_decoration_mgr()->AddDecoration(spv::Op::OpDecorate, operands);
-
- check_desc_func_id_ = func_id;
- // Make sure function doesn't get processed by
- // InstrumentPass::InstProcessCallTreeFromRoots()
- param2output_func_id_[3] = func_id;
- return check_desc_func_id_;
-}
-
-// clang-format off
-// GLSL:
-// result = inst_bindless_check_desc(shader_id, inst_idx, stage_info, desc_set, binding, desc_idx, offset);
-//
-// clang-format on
-uint32_t InstBindlessCheckPass::GenDescCheckCall(
- uint32_t inst_idx, uint32_t stage_idx, uint32_t var_id,
- uint32_t desc_idx_id, uint32_t offset_id, InstructionBuilder* builder) {
- const uint32_t func_id = GenDescCheckFunctionId();
- const std::vector<uint32_t> args = {
- builder->GetUintConstantId(shader_id_),
- builder->GetUintConstantId(inst_idx),
- GenStageInfo(stage_idx, builder),
- builder->GetUintConstantId(var2desc_set_[var_id]),
- builder->GetUintConstantId(var2binding_[var_id]),
- GenUintCastCode(desc_idx_id, builder),
- offset_id};
- return GenReadFunctionCall(GetBoolId(), func_id, args, builder);
-}
-
-uint32_t InstBindlessCheckPass::CloneOriginalImage(
- uint32_t old_image_id, InstructionBuilder* builder) {
- Instruction* new_image_inst;
- Instruction* old_image_inst = get_def_use_mgr()->GetDef(old_image_id);
- if (old_image_inst->opcode() == spv::Op::OpLoad) {
- new_image_inst = builder->AddLoad(
- old_image_inst->type_id(),
- old_image_inst->GetSingleWordInOperand(kSpvLoadPtrIdInIdx));
- } else if (old_image_inst->opcode() == spv::Op::OpSampledImage) {
- uint32_t clone_id = CloneOriginalImage(
- old_image_inst->GetSingleWordInOperand(kSpvSampledImageImageIdInIdx),
- builder);
- new_image_inst = builder->AddBinaryOp(
- old_image_inst->type_id(), spv::Op::OpSampledImage, clone_id,
- old_image_inst->GetSingleWordInOperand(kSpvSampledImageSamplerIdInIdx));
- } else if (old_image_inst->opcode() == spv::Op::OpImage) {
- uint32_t clone_id = CloneOriginalImage(
- old_image_inst->GetSingleWordInOperand(kSpvImageSampledImageIdInIdx),
- builder);
- new_image_inst = builder->AddUnaryOp(old_image_inst->type_id(),
- spv::Op::OpImage, clone_id);
- } else {
- assert(old_image_inst->opcode() == spv::Op::OpCopyObject &&
- "expecting OpCopyObject");
- uint32_t clone_id = CloneOriginalImage(
- old_image_inst->GetSingleWordInOperand(kSpvCopyObjectOperandIdInIdx),
- builder);
- // Since we are cloning, no need to create new copy
- new_image_inst = get_def_use_mgr()->GetDef(clone_id);
- }
- uid2offset_[new_image_inst->unique_id()] =
- uid2offset_[old_image_inst->unique_id()];
- uint32_t new_image_id = new_image_inst->result_id();
- get_decoration_mgr()->CloneDecorations(old_image_id, new_image_id);
- return new_image_id;
-}
-
-uint32_t InstBindlessCheckPass::CloneOriginalReference(
- RefAnalysis* ref, InstructionBuilder* builder) {
- // If original is image based, start by cloning descriptor load
- uint32_t new_image_id = 0;
- if (ref->desc_load_id != 0) {
- uint32_t old_image_id =
- ref->ref_inst->GetSingleWordInOperand(kSpvImageSampleImageIdInIdx);
- new_image_id = CloneOriginalImage(old_image_id, builder);
- }
- // Clone original reference
- std::unique_ptr<Instruction> new_ref_inst(ref->ref_inst->Clone(context()));
- uint32_t ref_result_id = ref->ref_inst->result_id();
- uint32_t new_ref_id = 0;
- if (ref_result_id != 0) {
- new_ref_id = TakeNextId();
- new_ref_inst->SetResultId(new_ref_id);
- }
- // Update new ref with new image if created
- if (new_image_id != 0)
- new_ref_inst->SetInOperand(kSpvImageSampleImageIdInIdx, {new_image_id});
- // Register new reference and add to new block
- Instruction* added_inst = builder->AddInstruction(std::move(new_ref_inst));
- uid2offset_[added_inst->unique_id()] =
- uid2offset_[ref->ref_inst->unique_id()];
- if (new_ref_id != 0)
- get_decoration_mgr()->CloneDecorations(ref_result_id, new_ref_id);
- return new_ref_id;
-}
-
-uint32_t InstBindlessCheckPass::GetImageId(Instruction* inst) {
- switch (inst->opcode()) {
- case spv::Op::OpImageSampleImplicitLod:
- case spv::Op::OpImageSampleExplicitLod:
- case spv::Op::OpImageSampleDrefImplicitLod:
- case spv::Op::OpImageSampleDrefExplicitLod:
- case spv::Op::OpImageSampleProjImplicitLod:
- case spv::Op::OpImageSampleProjExplicitLod:
- case spv::Op::OpImageSampleProjDrefImplicitLod:
- case spv::Op::OpImageSampleProjDrefExplicitLod:
- case spv::Op::OpImageGather:
- case spv::Op::OpImageDrefGather:
- case spv::Op::OpImageQueryLod:
- case spv::Op::OpImageSparseSampleImplicitLod:
- case spv::Op::OpImageSparseSampleExplicitLod:
- case spv::Op::OpImageSparseSampleDrefImplicitLod:
- case spv::Op::OpImageSparseSampleDrefExplicitLod:
- case spv::Op::OpImageSparseSampleProjImplicitLod:
- case spv::Op::OpImageSparseSampleProjExplicitLod:
- case spv::Op::OpImageSparseSampleProjDrefImplicitLod:
- case spv::Op::OpImageSparseSampleProjDrefExplicitLod:
- case spv::Op::OpImageSparseGather:
- case spv::Op::OpImageSparseDrefGather:
- case spv::Op::OpImageFetch:
- case spv::Op::OpImageRead:
- case spv::Op::OpImageQueryFormat:
- case spv::Op::OpImageQueryOrder:
- case spv::Op::OpImageQuerySizeLod:
- case spv::Op::OpImageQuerySize:
- case spv::Op::OpImageQueryLevels:
- case spv::Op::OpImageQuerySamples:
- case spv::Op::OpImageSparseFetch:
- case spv::Op::OpImageSparseRead:
- case spv::Op::OpImageWrite:
- return inst->GetSingleWordInOperand(kSpvImageSampleImageIdInIdx);
- default:
- break;
- }
- return 0;
-}
-
-Instruction* InstBindlessCheckPass::GetPointeeTypeInst(Instruction* ptr_inst) {
- uint32_t pte_ty_id = GetPointeeTypeId(ptr_inst);
- return get_def_use_mgr()->GetDef(pte_ty_id);
-}
-
-bool InstBindlessCheckPass::AnalyzeDescriptorReference(Instruction* ref_inst,
- RefAnalysis* ref) {
- ref->ref_inst = ref_inst;
- if (ref_inst->opcode() == spv::Op::OpLoad ||
- ref_inst->opcode() == spv::Op::OpStore) {
- ref->desc_load_id = 0;
- ref->ptr_id = ref_inst->GetSingleWordInOperand(kSpvLoadPtrIdInIdx);
- Instruction* ptr_inst = get_def_use_mgr()->GetDef(ref->ptr_id);
- if (ptr_inst->opcode() != spv::Op::OpAccessChain) return false;
- ref->var_id = ptr_inst->GetSingleWordInOperand(kSpvAccessChainBaseIdInIdx);
- Instruction* var_inst = get_def_use_mgr()->GetDef(ref->var_id);
- if (var_inst->opcode() != spv::Op::OpVariable) return false;
- spv::StorageClass storage_class = spv::StorageClass(
- var_inst->GetSingleWordInOperand(kSpvVariableStorageClassInIdx));
- switch (storage_class) {
- case spv::StorageClass::Uniform:
- case spv::StorageClass::StorageBuffer:
- break;
- default:
- return false;
- break;
- }
- // Check for deprecated storage block form
- if (storage_class == spv::StorageClass::Uniform) {
- uint32_t var_ty_id = var_inst->type_id();
- Instruction* var_ty_inst = get_def_use_mgr()->GetDef(var_ty_id);
- uint32_t ptr_ty_id =
- var_ty_inst->GetSingleWordInOperand(kSpvTypePtrTypeIdInIdx);
- Instruction* ptr_ty_inst = get_def_use_mgr()->GetDef(ptr_ty_id);
- spv::Op ptr_ty_op = ptr_ty_inst->opcode();
- uint32_t block_ty_id =
- (ptr_ty_op == spv::Op::OpTypeArray ||
- ptr_ty_op == spv::Op::OpTypeRuntimeArray)
- ? ptr_ty_inst->GetSingleWordInOperand(kSpvTypeArrayTypeIdInIdx)
- : ptr_ty_id;
- assert(get_def_use_mgr()->GetDef(block_ty_id)->opcode() ==
- spv::Op::OpTypeStruct &&
- "unexpected block type");
- bool block_found = get_decoration_mgr()->FindDecoration(
- block_ty_id, uint32_t(spv::Decoration::Block),
- [](const Instruction&) { return true; });
- if (!block_found) {
- // If block decoration not found, verify deprecated form of SSBO
- bool buffer_block_found = get_decoration_mgr()->FindDecoration(
- block_ty_id, uint32_t(spv::Decoration::BufferBlock),
- [](const Instruction&) { return true; });
- USE_ASSERT(buffer_block_found && "block decoration not found");
- storage_class = spv::StorageClass::StorageBuffer;
- }
- }
- ref->strg_class = uint32_t(storage_class);
- Instruction* desc_type_inst = GetPointeeTypeInst(var_inst);
- switch (desc_type_inst->opcode()) {
- case spv::Op::OpTypeArray:
- case spv::Op::OpTypeRuntimeArray:
- // A load through a descriptor array will have at least 3 operands. We
- // do not want to instrument loads of descriptors here which are part of
- // an image-based reference.
- if (ptr_inst->NumInOperands() < 3) return false;
- ref->desc_idx_id =
- ptr_inst->GetSingleWordInOperand(kSpvAccessChainIndex0IdInIdx);
- break;
- default:
- break;
- }
- auto decos =
- context()->get_decoration_mgr()->GetDecorationsFor(ref->var_id, false);
- for (const auto& deco : decos) {
- spv::Decoration d = spv::Decoration(deco->GetSingleWordInOperand(1u));
- if (d == spv::Decoration::DescriptorSet) {
- ref->set = deco->GetSingleWordInOperand(2u);
- } else if (d == spv::Decoration::Binding) {
- ref->binding = deco->GetSingleWordInOperand(2u);
- }
- }
- return true;
- }
- // Reference is not load or store. If not an image-based reference, return.
- ref->image_id = GetImageId(ref_inst);
- if (ref->image_id == 0) return false;
- // Search for descriptor load
- uint32_t desc_load_id = ref->image_id;
- Instruction* desc_load_inst;
- for (;;) {
- desc_load_inst = get_def_use_mgr()->GetDef(desc_load_id);
- if (desc_load_inst->opcode() == spv::Op::OpSampledImage)
- desc_load_id =
- desc_load_inst->GetSingleWordInOperand(kSpvSampledImageImageIdInIdx);
- else if (desc_load_inst->opcode() == spv::Op::OpImage)
- desc_load_id =
- desc_load_inst->GetSingleWordInOperand(kSpvImageSampledImageIdInIdx);
- else if (desc_load_inst->opcode() == spv::Op::OpCopyObject)
- desc_load_id =
- desc_load_inst->GetSingleWordInOperand(kSpvCopyObjectOperandIdInIdx);
- else
- break;
- }
- if (desc_load_inst->opcode() != spv::Op::OpLoad) {
- // TODO(greg-lunarg): Handle additional possibilities?
- return false;
- }
- ref->desc_load_id = desc_load_id;
- ref->ptr_id = desc_load_inst->GetSingleWordInOperand(kSpvLoadPtrIdInIdx);
- Instruction* ptr_inst = get_def_use_mgr()->GetDef(ref->ptr_id);
- if (ptr_inst->opcode() == spv::Op::OpVariable) {
- ref->desc_idx_id = 0;
- ref->var_id = ref->ptr_id;
- } else if (ptr_inst->opcode() == spv::Op::OpAccessChain) {
- if (ptr_inst->NumInOperands() != 2) {
- assert(false && "unexpected bindless index number");
- return false;
- }
- ref->desc_idx_id =
- ptr_inst->GetSingleWordInOperand(kSpvAccessChainIndex0IdInIdx);
- ref->var_id = ptr_inst->GetSingleWordInOperand(kSpvAccessChainBaseIdInIdx);
- Instruction* var_inst = get_def_use_mgr()->GetDef(ref->var_id);
- if (var_inst->opcode() != spv::Op::OpVariable) {
- assert(false && "unexpected bindless base");
- return false;
- }
- } else {
- // TODO(greg-lunarg): Handle additional possibilities?
- return false;
- }
- auto decos =
- context()->get_decoration_mgr()->GetDecorationsFor(ref->var_id, false);
- for (const auto& deco : decos) {
- spv::Decoration d = spv::Decoration(deco->GetSingleWordInOperand(1u));
- if (d == spv::Decoration::DescriptorSet) {
- ref->set = deco->GetSingleWordInOperand(2u);
- } else if (d == spv::Decoration::Binding) {
- ref->binding = deco->GetSingleWordInOperand(2u);
- }
- }
- return true;
-}
-
-uint32_t InstBindlessCheckPass::FindStride(uint32_t ty_id,
- uint32_t stride_deco) {
- uint32_t stride = 0xdeadbeef;
- bool found = get_decoration_mgr()->FindDecoration(
- ty_id, stride_deco, [&stride](const Instruction& deco_inst) {
- stride = deco_inst.GetSingleWordInOperand(2u);
- return true;
- });
- USE_ASSERT(found && "stride not found");
- return stride;
-}
-
-uint32_t InstBindlessCheckPass::ByteSize(uint32_t ty_id, uint32_t matrix_stride,
- bool col_major, bool in_matrix) {
- analysis::TypeManager* type_mgr = context()->get_type_mgr();
- const analysis::Type* sz_ty = type_mgr->GetType(ty_id);
- if (sz_ty->kind() == analysis::Type::kPointer) {
- // Assuming PhysicalStorageBuffer pointer
- return 8;
- }
- if (sz_ty->kind() == analysis::Type::kMatrix) {
- assert(matrix_stride != 0 && "missing matrix stride");
- const analysis::Matrix* m_ty = sz_ty->AsMatrix();
- if (col_major) {
- return m_ty->element_count() * matrix_stride;
- } else {
- const analysis::Vector* v_ty = m_ty->element_type()->AsVector();
- return v_ty->element_count() * matrix_stride;
- }
- }
- uint32_t size = 1;
- if (sz_ty->kind() == analysis::Type::kVector) {
- const analysis::Vector* v_ty = sz_ty->AsVector();
- size = v_ty->element_count();
- const analysis::Type* comp_ty = v_ty->element_type();
- // if vector in row major matrix, the vector is strided so return the
- // number of bytes spanned by the vector
- if (in_matrix && !col_major && matrix_stride > 0) {
- uint32_t comp_ty_id = type_mgr->GetId(comp_ty);
- return (size - 1) * matrix_stride + ByteSize(comp_ty_id, 0, false, false);
- }
- sz_ty = comp_ty;
- }
- switch (sz_ty->kind()) {
- case analysis::Type::kFloat: {
- const analysis::Float* f_ty = sz_ty->AsFloat();
- size *= f_ty->width();
- } break;
- case analysis::Type::kInteger: {
- const analysis::Integer* i_ty = sz_ty->AsInteger();
- size *= i_ty->width();
- } break;
- default: { assert(false && "unexpected type"); } break;
- }
- size /= 8;
- return size;
-}
-
-uint32_t InstBindlessCheckPass::GenLastByteIdx(RefAnalysis* ref,
- InstructionBuilder* builder) {
- // Find outermost buffer type and its access chain index
- Instruction* var_inst = get_def_use_mgr()->GetDef(ref->var_id);
- Instruction* desc_ty_inst = GetPointeeTypeInst(var_inst);
- uint32_t buff_ty_id;
- uint32_t ac_in_idx = 1;
- switch (desc_ty_inst->opcode()) {
- case spv::Op::OpTypeArray:
- case spv::Op::OpTypeRuntimeArray:
- buff_ty_id = desc_ty_inst->GetSingleWordInOperand(0);
- ++ac_in_idx;
- break;
- default:
- assert(desc_ty_inst->opcode() == spv::Op::OpTypeStruct &&
- "unexpected descriptor type");
- buff_ty_id = desc_ty_inst->result_id();
- break;
- }
- // Process remaining access chain indices
- Instruction* ac_inst = get_def_use_mgr()->GetDef(ref->ptr_id);
- uint32_t curr_ty_id = buff_ty_id;
- uint32_t sum_id = 0u;
- uint32_t matrix_stride = 0u;
- bool col_major = false;
- uint32_t matrix_stride_id = 0u;
- bool in_matrix = false;
- while (ac_in_idx < ac_inst->NumInOperands()) {
- uint32_t curr_idx_id = ac_inst->GetSingleWordInOperand(ac_in_idx);
- Instruction* curr_ty_inst = get_def_use_mgr()->GetDef(curr_ty_id);
- uint32_t curr_offset_id = 0;
- switch (curr_ty_inst->opcode()) {
- case spv::Op::OpTypeArray:
- case spv::Op::OpTypeRuntimeArray: {
- // Get array stride and multiply by current index
- uint32_t arr_stride =
- FindStride(curr_ty_id, uint32_t(spv::Decoration::ArrayStride));
- uint32_t arr_stride_id = builder->GetUintConstantId(arr_stride);
- uint32_t curr_idx_32b_id = Gen32BitCvtCode(curr_idx_id, builder);
- Instruction* curr_offset_inst = builder->AddBinaryOp(
- GetUintId(), spv::Op::OpIMul, arr_stride_id, curr_idx_32b_id);
- curr_offset_id = curr_offset_inst->result_id();
- // Get element type for next step
- curr_ty_id = curr_ty_inst->GetSingleWordInOperand(0);
- } break;
- case spv::Op::OpTypeMatrix: {
- assert(matrix_stride != 0 && "missing matrix stride");
- matrix_stride_id = builder->GetUintConstantId(matrix_stride);
- uint32_t vec_ty_id = curr_ty_inst->GetSingleWordInOperand(0);
- // If column major, multiply column index by matrix stride, otherwise
- // by vector component size and save matrix stride for vector (row)
- // index
- uint32_t col_stride_id;
- if (col_major) {
- col_stride_id = matrix_stride_id;
- } else {
- Instruction* vec_ty_inst = get_def_use_mgr()->GetDef(vec_ty_id);
- uint32_t comp_ty_id = vec_ty_inst->GetSingleWordInOperand(0u);
- uint32_t col_stride = ByteSize(comp_ty_id, 0u, false, false);
- col_stride_id = builder->GetUintConstantId(col_stride);
- }
- uint32_t curr_idx_32b_id = Gen32BitCvtCode(curr_idx_id, builder);
- Instruction* curr_offset_inst = builder->AddBinaryOp(
- GetUintId(), spv::Op::OpIMul, col_stride_id, curr_idx_32b_id);
- curr_offset_id = curr_offset_inst->result_id();
- // Get element type for next step
- curr_ty_id = vec_ty_id;
- in_matrix = true;
- } break;
- case spv::Op::OpTypeVector: {
- // If inside a row major matrix type, multiply index by matrix stride,
- // else multiply by component size
- uint32_t comp_ty_id = curr_ty_inst->GetSingleWordInOperand(0u);
- uint32_t curr_idx_32b_id = Gen32BitCvtCode(curr_idx_id, builder);
- if (in_matrix && !col_major) {
- Instruction* curr_offset_inst = builder->AddBinaryOp(
- GetUintId(), spv::Op::OpIMul, matrix_stride_id, curr_idx_32b_id);
- curr_offset_id = curr_offset_inst->result_id();
- } else {
- uint32_t comp_ty_sz = ByteSize(comp_ty_id, 0u, false, false);
- uint32_t comp_ty_sz_id = builder->GetUintConstantId(comp_ty_sz);
- Instruction* curr_offset_inst = builder->AddBinaryOp(
- GetUintId(), spv::Op::OpIMul, comp_ty_sz_id, curr_idx_32b_id);
- curr_offset_id = curr_offset_inst->result_id();
- }
- // Get element type for next step
- curr_ty_id = comp_ty_id;
- } break;
- case spv::Op::OpTypeStruct: {
- // Get buffer byte offset for the referenced member
- Instruction* curr_idx_inst = get_def_use_mgr()->GetDef(curr_idx_id);
- assert(curr_idx_inst->opcode() == spv::Op::OpConstant &&
- "unexpected struct index");
- uint32_t member_idx = curr_idx_inst->GetSingleWordInOperand(0);
- uint32_t member_offset = 0xdeadbeef;
- bool found = get_decoration_mgr()->FindDecoration(
- curr_ty_id, uint32_t(spv::Decoration::Offset),
- [&member_idx, &member_offset](const Instruction& deco_inst) {
- if (deco_inst.GetSingleWordInOperand(1u) != member_idx)
- return false;
- member_offset = deco_inst.GetSingleWordInOperand(3u);
- return true;
- });
- USE_ASSERT(found && "member offset not found");
- curr_offset_id = builder->GetUintConstantId(member_offset);
- // Look for matrix stride for this member if there is one. The matrix
- // stride is not on the matrix type, but in a OpMemberDecorate on the
- // enclosing struct type at the member index. If none found, reset
- // stride to 0.
- found = get_decoration_mgr()->FindDecoration(
- curr_ty_id, uint32_t(spv::Decoration::MatrixStride),
- [&member_idx, &matrix_stride](const Instruction& deco_inst) {
- if (deco_inst.GetSingleWordInOperand(1u) != member_idx)
- return false;
- matrix_stride = deco_inst.GetSingleWordInOperand(3u);
- return true;
- });
- if (!found) matrix_stride = 0;
- // Look for column major decoration
- found = get_decoration_mgr()->FindDecoration(
- curr_ty_id, uint32_t(spv::Decoration::ColMajor),
- [&member_idx, &col_major](const Instruction& deco_inst) {
- if (deco_inst.GetSingleWordInOperand(1u) != member_idx)
- return false;
- col_major = true;
- return true;
- });
- if (!found) col_major = false;
- // Get element type for next step
- curr_ty_id = curr_ty_inst->GetSingleWordInOperand(member_idx);
- } break;
- default: { assert(false && "unexpected non-composite type"); } break;
- }
- if (sum_id == 0)
- sum_id = curr_offset_id;
- else {
- Instruction* sum_inst =
- builder->AddIAdd(GetUintId(), sum_id, curr_offset_id);
- sum_id = sum_inst->result_id();
- }
- ++ac_in_idx;
- }
- // Add in offset of last byte of referenced object
- uint32_t bsize = ByteSize(curr_ty_id, matrix_stride, col_major, in_matrix);
- uint32_t last = bsize - 1;
- uint32_t last_id = builder->GetUintConstantId(last);
- Instruction* sum_inst = builder->AddIAdd(GetUintId(), sum_id, last_id);
- return sum_inst->result_id();
-}
-
-void InstBindlessCheckPass::GenCheckCode(
- uint32_t check_id, RefAnalysis* ref,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- BasicBlock* back_blk_ptr = &*new_blocks->back();
- InstructionBuilder builder(
- context(), back_blk_ptr,
- IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping);
- // Gen conditional branch on check_id. Valid branch generates original
- // reference. Invalid generates debug output and zero result (if needed).
- uint32_t merge_blk_id = TakeNextId();
- uint32_t valid_blk_id = TakeNextId();
- uint32_t invalid_blk_id = TakeNextId();
- std::unique_ptr<Instruction> merge_label(NewLabel(merge_blk_id));
- std::unique_ptr<Instruction> valid_label(NewLabel(valid_blk_id));
- std::unique_ptr<Instruction> invalid_label(NewLabel(invalid_blk_id));
- (void)builder.AddConditionalBranch(
- check_id, valid_blk_id, invalid_blk_id, merge_blk_id,
- uint32_t(spv::SelectionControlMask::MaskNone));
- // Gen valid bounds branch
- std::unique_ptr<BasicBlock> new_blk_ptr(
- new BasicBlock(std::move(valid_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
- uint32_t new_ref_id = CloneOriginalReference(ref, &builder);
- uint32_t null_id = 0;
- uint32_t ref_type_id = ref->ref_inst->type_id();
- (void)builder.AddBranch(merge_blk_id);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Gen invalid block
- new_blk_ptr.reset(new BasicBlock(std::move(invalid_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
-
- // Generate a ConstantNull, converting to uint64 if the type cannot be a null.
- if (new_ref_id != 0) {
- analysis::TypeManager* type_mgr = context()->get_type_mgr();
- analysis::Type* ref_type = type_mgr->GetType(ref_type_id);
- if (ref_type->AsPointer() != nullptr) {
- context()->AddCapability(spv::Capability::Int64);
- uint32_t null_u64_id = GetNullId(GetUint64Id());
- Instruction* null_ptr_inst = builder.AddUnaryOp(
- ref_type_id, spv::Op::OpConvertUToPtr, null_u64_id);
- null_id = null_ptr_inst->result_id();
- } else {
- null_id = GetNullId(ref_type_id);
- }
- }
- // Remember last invalid block id
- uint32_t last_invalid_blk_id = new_blk_ptr->GetLabelInst()->result_id();
- // Gen zero for invalid reference
- (void)builder.AddBranch(merge_blk_id);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Gen merge block
- new_blk_ptr.reset(new BasicBlock(std::move(merge_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
- // Gen phi of new reference and zero, if necessary, and replace the
- // result id of the original reference with that of the Phi. Kill original
- // reference.
- if (new_ref_id != 0) {
- Instruction* phi_inst = builder.AddPhi(
- ref_type_id, {new_ref_id, valid_blk_id, null_id, last_invalid_blk_id});
- context()->ReplaceAllUsesWith(ref->ref_inst->result_id(),
- phi_inst->result_id());
- }
- new_blocks->push_back(std::move(new_blk_ptr));
- context()->KillInst(ref->ref_inst);
-}
-
-void InstBindlessCheckPass::GenDescCheckCode(
- BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr, uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- // Look for reference through descriptor. If not, return.
- RefAnalysis ref;
- if (!AnalyzeDescriptorReference(&*ref_inst_itr, &ref)) return;
- std::unique_ptr<BasicBlock> new_blk_ptr;
- // Move original block's preceding instructions into first new block
- MovePreludeCode(ref_inst_itr, ref_block_itr, &new_blk_ptr);
- InstructionBuilder builder(
- context(), &*new_blk_ptr,
- IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Determine if we can only do initialization check
- uint32_t ref_id = builder.GetUintConstantId(0u);
- spv::Op op = ref.ref_inst->opcode();
- if (ref.desc_load_id != 0) {
- uint32_t num_in_oprnds = ref.ref_inst->NumInOperands();
- if ((op == spv::Op::OpImageRead && num_in_oprnds == 2) ||
- (op == spv::Op::OpImageFetch && num_in_oprnds == 2) ||
- (op == spv::Op::OpImageWrite && num_in_oprnds == 3)) {
- Instruction* image_inst = get_def_use_mgr()->GetDef(ref.image_id);
- uint32_t image_ty_id = image_inst->type_id();
- Instruction* image_ty_inst = get_def_use_mgr()->GetDef(image_ty_id);
- if (spv::Dim(image_ty_inst->GetSingleWordInOperand(kSpvTypeImageDim)) ==
- spv::Dim::Buffer) {
- if ((image_ty_inst->GetSingleWordInOperand(kSpvTypeImageDepth) == 0) &&
- (image_ty_inst->GetSingleWordInOperand(kSpvTypeImageArrayed) ==
- 0) &&
- (image_ty_inst->GetSingleWordInOperand(kSpvTypeImageMS) == 0)) {
- ref_id = GenUintCastCode(ref.ref_inst->GetSingleWordInOperand(1),
- &builder);
- }
- }
- }
- } else {
- // For now, only do bounds check for non-aggregate types. Otherwise
- // just do descriptor initialization check.
- // TODO(greg-lunarg): Do bounds check for aggregate loads and stores
- Instruction* ref_ptr_inst = get_def_use_mgr()->GetDef(ref.ptr_id);
- Instruction* pte_type_inst = GetPointeeTypeInst(ref_ptr_inst);
- spv::Op pte_type_op = pte_type_inst->opcode();
- if (pte_type_op != spv::Op::OpTypeArray &&
- pte_type_op != spv::Op::OpTypeRuntimeArray &&
- pte_type_op != spv::Op::OpTypeStruct) {
- ref_id = GenLastByteIdx(&ref, &builder);
- }
- }
- // Read initialization/bounds from debug input buffer. If index id not yet
- // set, binding is single descriptor, so set index to constant 0.
- if (ref.desc_idx_id == 0) ref.desc_idx_id = builder.GetUintConstantId(0u);
- uint32_t check_id =
- GenDescCheckCall(ref.ref_inst->unique_id(), stage_idx, ref.var_id,
- ref.desc_idx_id, ref_id, &builder);
-
- // Generate runtime initialization/bounds test code with true branch
- // being full reference and false branch being zero
- // for the referenced value.
- GenCheckCode(check_id, &ref, new_blocks);
-
- // Move original block's remaining code into remainder/merge block and add
- // to new blocks
- BasicBlock* back_blk_ptr = &*new_blocks->back();
- MovePostludeCode(ref_block_itr, back_blk_ptr);
-}
-
-void InstBindlessCheckPass::InitializeInstBindlessCheck() {
- // Initialize base class
- InitializeInstrument();
- for (auto& anno : get_module()->annotations()) {
- if (anno.opcode() == spv::Op::OpDecorate) {
- if (spv::Decoration(anno.GetSingleWordInOperand(1u)) ==
- spv::Decoration::DescriptorSet) {
- var2desc_set_[anno.GetSingleWordInOperand(0u)] =
- anno.GetSingleWordInOperand(2u);
- } else if (spv::Decoration(anno.GetSingleWordInOperand(1u)) ==
- spv::Decoration::Binding) {
- var2binding_[anno.GetSingleWordInOperand(0u)] =
- anno.GetSingleWordInOperand(2u);
- }
- }
- }
-}
-
-Pass::Status InstBindlessCheckPass::ProcessImpl() {
- // The memory model and linkage must always be updated for spirv-link to work
- // correctly.
- AddStorageBufferExt();
- if (!get_feature_mgr()->HasExtension(kSPV_KHR_physical_storage_buffer)) {
- context()->AddExtension("SPV_KHR_physical_storage_buffer");
- }
-
- context()->AddCapability(spv::Capability::PhysicalStorageBufferAddresses);
- Instruction* memory_model = get_module()->GetMemoryModel();
- memory_model->SetInOperand(
- 0u, {uint32_t(spv::AddressingModel::PhysicalStorageBuffer64)});
-
- context()->AddCapability(spv::Capability::Linkage);
-
- InstProcessFunction pfn =
- [this](BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr, uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- return GenDescCheckCode(ref_inst_itr, ref_block_itr, stage_idx,
- new_blocks);
- };
-
- InstProcessEntryPointCallTree(pfn);
- // This pass always changes the memory model, so that linking will work
- // properly.
- return Status::SuccessWithChange;
-}
-
-Pass::Status InstBindlessCheckPass::Process() {
- InitializeInstBindlessCheck();
- return ProcessImpl();
-}
-
-} // namespace opt
-} // namespace spvtools
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.h b/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.h
deleted file mode 100644
index 243cba7671..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_bindless_check_pass.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2018 The Khronos Group Inc.
-// Copyright (c) 2018 Valve Corporation
-// Copyright (c) 2018 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef LIBSPIRV_OPT_INST_BINDLESS_CHECK_PASS_H_
-#define LIBSPIRV_OPT_INST_BINDLESS_CHECK_PASS_H_
-
-#include "instrument_pass.h"
-
-namespace spvtools {
-namespace opt {
-
-// This class/pass is designed to support the bindless (descriptor indexing)
-// GPU-assisted validation layer of
-// https://github.com/KhronosGroup/Vulkan-ValidationLayers. Its internal and
-// external design may change as the layer evolves.
-class InstBindlessCheckPass : public InstrumentPass {
- public:
- InstBindlessCheckPass(uint32_t shader_id)
- : InstrumentPass(0, shader_id, true, true) {}
-
- ~InstBindlessCheckPass() override = default;
-
- // See optimizer.hpp for pass user documentation.
- Status Process() override;
-
- const char* name() const override { return "inst-bindless-check-pass"; }
-
- private:
- void GenDescCheckCode(BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr,
- uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks);
-
- uint32_t GenDescCheckFunctionId();
-
- uint32_t GenDescCheckCall(uint32_t inst_idx, uint32_t stage_idx,
- uint32_t var_id, uint32_t index_id,
- uint32_t byte_offset, InstructionBuilder* builder);
-
- // Analysis data for descriptor reference components, generated by
- // AnalyzeDescriptorReference. It is necessary and sufficient for further
- // analysis and regeneration of the reference.
- typedef struct RefAnalysis {
- uint32_t desc_load_id{0};
- uint32_t image_id{0};
- uint32_t load_id{0};
- uint32_t ptr_id{0};
- uint32_t var_id{0};
- uint32_t set{0};
- uint32_t binding{0};
- uint32_t desc_idx_id{0};
- uint32_t strg_class{0};
- Instruction* ref_inst{nullptr};
- } RefAnalysis;
-
- // Return size of type |ty_id| in bytes. Use |matrix_stride| and |col_major|
- // for matrix type, or for vector type if vector is |in_matrix|.
- uint32_t ByteSize(uint32_t ty_id, uint32_t matrix_stride, bool col_major,
- bool in_matrix);
-
- // Return stride of type |ty_id| with decoration |stride_deco|. Return 0
- // if not found
- uint32_t FindStride(uint32_t ty_id, uint32_t stride_deco);
-
- // Generate index of last byte referenced by buffer reference |ref|
- uint32_t GenLastByteIdx(RefAnalysis* ref, InstructionBuilder* builder);
-
- // Clone original image computation starting at |image_id| into |builder|.
- // This may generate more than one instruction if necessary.
- uint32_t CloneOriginalImage(uint32_t image_id, InstructionBuilder* builder);
-
- // Clone original original reference encapsulated by |ref| into |builder|.
- // This may generate more than one instruction if necessary.
- uint32_t CloneOriginalReference(RefAnalysis* ref,
- InstructionBuilder* builder);
-
- // If |inst| references through an image, return the id of the image it
- // references through. Else return 0.
- uint32_t GetImageId(Instruction* inst);
-
- // Get pointee type inst of pointer value |ptr_inst|.
- Instruction* GetPointeeTypeInst(Instruction* ptr_inst);
-
- // Analyze descriptor reference |ref_inst| and save components into |ref|.
- // Return true if |ref_inst| is a descriptor reference, false otherwise.
- bool AnalyzeDescriptorReference(Instruction* ref_inst, RefAnalysis* ref);
-
- // Generate instrumentation code for generic test result |check_id|, starting
- // with |builder| of block |new_blk_ptr|, adding new blocks to |new_blocks|.
- // Generate conditional branch to a valid or invalid branch. Generate valid
- // block which does original reference |ref|. Generate invalid block which
- // writes debug error output utilizing |ref|, |error_id|, |length_id| and
- // |stage_idx|. Generate merge block for valid and invalid branches. Kill
- // original reference.
- void GenCheckCode(uint32_t check_id, RefAnalysis* ref,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks);
-
- // Initialize state for instrumenting bindless checking
- void InitializeInstBindlessCheck();
-
- // Apply GenDescIdxCheckCode to every instruction in module. Then apply
- // GenDescInitCheckCode to every instruction in module.
- Pass::Status ProcessImpl();
-
- // Mapping from variable to descriptor set
- std::unordered_map<uint32_t, uint32_t> var2desc_set_;
-
- // Mapping from variable to binding
- std::unordered_map<uint32_t, uint32_t> var2binding_;
-
- uint32_t check_desc_func_id_{0};
-};
-
-} // namespace opt
-} // namespace spvtools
-
-#endif // LIBSPIRV_OPT_INST_BINDLESS_CHECK_PASS_H_
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.cpp b/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.cpp
deleted file mode 100644
index e6c550878a..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.cpp
+++ /dev/null
@@ -1,331 +0,0 @@
-// Copyright (c) 2019 The Khronos Group Inc.
-// Copyright (c) 2019 Valve Corporation
-// Copyright (c) 2019 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "inst_buff_addr_check_pass.h"
-
-namespace spvtools {
-namespace opt {
-
-uint32_t InstBuffAddrCheckPass::CloneOriginalReference(
- Instruction* ref_inst, InstructionBuilder* builder) {
- // Clone original ref with new result id (if load)
- assert((ref_inst->opcode() == spv::Op::OpLoad ||
- ref_inst->opcode() == spv::Op::OpStore) &&
- "unexpected ref");
- std::unique_ptr<Instruction> new_ref_inst(ref_inst->Clone(context()));
- uint32_t ref_result_id = ref_inst->result_id();
- uint32_t new_ref_id = 0;
- if (ref_result_id != 0) {
- new_ref_id = TakeNextId();
- new_ref_inst->SetResultId(new_ref_id);
- }
- // Register new reference and add to new block
- Instruction* added_inst = builder->AddInstruction(std::move(new_ref_inst));
- uid2offset_[added_inst->unique_id()] = uid2offset_[ref_inst->unique_id()];
- if (new_ref_id != 0)
- get_decoration_mgr()->CloneDecorations(ref_result_id, new_ref_id);
- return new_ref_id;
-}
-
-bool InstBuffAddrCheckPass::IsPhysicalBuffAddrReference(Instruction* ref_inst) {
- if (ref_inst->opcode() != spv::Op::OpLoad &&
- ref_inst->opcode() != spv::Op::OpStore)
- return false;
- uint32_t ptr_id = ref_inst->GetSingleWordInOperand(0);
- analysis::DefUseManager* du_mgr = get_def_use_mgr();
- Instruction* ptr_inst = du_mgr->GetDef(ptr_id);
- if (ptr_inst->opcode() != spv::Op::OpAccessChain) return false;
- uint32_t ptr_ty_id = ptr_inst->type_id();
- Instruction* ptr_ty_inst = du_mgr->GetDef(ptr_ty_id);
- if (spv::StorageClass(ptr_ty_inst->GetSingleWordInOperand(0)) !=
- spv::StorageClass::PhysicalStorageBufferEXT)
- return false;
- return true;
-}
-
-// TODO(greg-lunarg): Refactor with InstBindlessCheckPass::GenCheckCode() ??
-void InstBuffAddrCheckPass::GenCheckCode(
- uint32_t check_id, Instruction* ref_inst,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- BasicBlock* back_blk_ptr = &*new_blocks->back();
- InstructionBuilder builder(
- context(), back_blk_ptr,
- IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping);
- // Gen conditional branch on check_id. Valid branch generates original
- // reference. Invalid generates debug output and zero result (if needed).
- uint32_t merge_blk_id = TakeNextId();
- uint32_t valid_blk_id = TakeNextId();
- uint32_t invalid_blk_id = TakeNextId();
- std::unique_ptr<Instruction> merge_label(NewLabel(merge_blk_id));
- std::unique_ptr<Instruction> valid_label(NewLabel(valid_blk_id));
- std::unique_ptr<Instruction> invalid_label(NewLabel(invalid_blk_id));
- (void)builder.AddConditionalBranch(
- check_id, valid_blk_id, invalid_blk_id, merge_blk_id,
- uint32_t(spv::SelectionControlMask::MaskNone));
- // Gen valid branch
- std::unique_ptr<BasicBlock> new_blk_ptr(
- new BasicBlock(std::move(valid_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
- uint32_t new_ref_id = CloneOriginalReference(ref_inst, &builder);
- (void)builder.AddBranch(merge_blk_id);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Gen invalid block
- new_blk_ptr.reset(new BasicBlock(std::move(invalid_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
- // Gen zero for invalid load. If pointer type, need to convert uint64
- // zero to pointer; cannot create ConstantNull of pointer type.
- uint32_t null_id = 0;
- if (new_ref_id != 0) {
- uint32_t ref_type_id = ref_inst->type_id();
- analysis::TypeManager* type_mgr = context()->get_type_mgr();
- analysis::Type* ref_type = type_mgr->GetType(ref_type_id);
- if (ref_type->AsPointer() != nullptr) {
- uint32_t null_u64_id = GetNullId(GetUint64Id());
- Instruction* null_ptr_inst = builder.AddUnaryOp(
- ref_type_id, spv::Op::OpConvertUToPtr, null_u64_id);
- null_id = null_ptr_inst->result_id();
- } else {
- null_id = GetNullId(ref_type_id);
- }
- }
- (void)builder.AddBranch(merge_blk_id);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Gen merge block
- new_blk_ptr.reset(new BasicBlock(std::move(merge_label)));
- builder.SetInsertPoint(&*new_blk_ptr);
- // Gen phi of new reference and zero, if necessary, and replace the
- // result id of the original reference with that of the Phi. Kill original
- // reference.
- if (new_ref_id != 0) {
- Instruction* phi_inst =
- builder.AddPhi(ref_inst->type_id(),
- {new_ref_id, valid_blk_id, null_id, invalid_blk_id});
- context()->ReplaceAllUsesWith(ref_inst->result_id(), phi_inst->result_id());
- }
- new_blocks->push_back(std::move(new_blk_ptr));
- context()->KillInst(ref_inst);
-}
-
-uint32_t InstBuffAddrCheckPass::GetTypeLength(uint32_t type_id) {
- Instruction* type_inst = get_def_use_mgr()->GetDef(type_id);
- switch (type_inst->opcode()) {
- case spv::Op::OpTypeFloat:
- case spv::Op::OpTypeInt:
- return type_inst->GetSingleWordInOperand(0) / 8u;
- case spv::Op::OpTypeVector:
- case spv::Op::OpTypeMatrix:
- return type_inst->GetSingleWordInOperand(1) *
- GetTypeLength(type_inst->GetSingleWordInOperand(0));
- case spv::Op::OpTypePointer:
- assert(spv::StorageClass(type_inst->GetSingleWordInOperand(0)) ==
- spv::StorageClass::PhysicalStorageBufferEXT &&
- "unexpected pointer type");
- return 8u;
- case spv::Op::OpTypeArray: {
- uint32_t const_id = type_inst->GetSingleWordInOperand(1);
- Instruction* const_inst = get_def_use_mgr()->GetDef(const_id);
- uint32_t cnt = const_inst->GetSingleWordInOperand(0);
- return cnt * GetTypeLength(type_inst->GetSingleWordInOperand(0));
- }
- case spv::Op::OpTypeStruct: {
- // Figure out the location of the last byte of the last member of the
- // structure.
- uint32_t last_offset = 0, last_len = 0;
-
- get_decoration_mgr()->ForEachDecoration(
- type_id, uint32_t(spv::Decoration::Offset),
- [&last_offset](const Instruction& deco_inst) {
- last_offset = deco_inst.GetSingleWordInOperand(3);
- });
- type_inst->ForEachInId([&last_len, this](const uint32_t* iid) {
- last_len = GetTypeLength(*iid);
- });
- return last_offset + last_len;
- }
- case spv::Op::OpTypeRuntimeArray:
- default:
- assert(false && "unexpected type");
- return 0;
- }
-}
-
-void InstBuffAddrCheckPass::AddParam(uint32_t type_id,
- std::vector<uint32_t>* param_vec,
- std::unique_ptr<Function>* input_func) {
- uint32_t pid = TakeNextId();
- param_vec->push_back(pid);
- std::unique_ptr<Instruction> param_inst(new Instruction(
- get_module()->context(), spv::Op::OpFunctionParameter, type_id, pid, {}));
- get_def_use_mgr()->AnalyzeInstDefUse(&*param_inst);
- (*input_func)->AddParameter(std::move(param_inst));
-}
-
-// This is a stub function for use with Import linkage
-// clang-format off
-// GLSL:
-//bool inst_bindless_search_and_test(const uint shader_id, const uint inst_num, const uvec4 stage_info,
-// const uint64 ref_ptr, const uint length) {
-//}
-// clang-format on
-uint32_t InstBuffAddrCheckPass::GetSearchAndTestFuncId() {
- enum {
- kShaderId = 0,
- kInstructionIndex = 1,
- kStageInfo = 2,
- kRefPtr = 3,
- kLength = 4,
- kNumArgs
- };
- if (search_test_func_id_ != 0) {
- return search_test_func_id_;
- }
- // Generate function "bool search_and_test(uint64_t ref_ptr, uint32_t len)"
- // which searches input buffer for buffer which most likely contains the
- // pointer value |ref_ptr| and verifies that the entire reference of
- // length |len| bytes is contained in the buffer.
- analysis::TypeManager* type_mgr = context()->get_type_mgr();
- const analysis::Integer* uint_type = GetInteger(32, false);
- const analysis::Vector v4uint(uint_type, 4);
- const analysis::Type* v4uint_type = type_mgr->GetRegisteredType(&v4uint);
-
- std::vector<const analysis::Type*> param_types = {
- uint_type, uint_type, v4uint_type, type_mgr->GetType(GetUint64Id()),
- uint_type};
-
- const std::string func_name{"inst_buff_addr_search_and_test"};
- const uint32_t func_id = TakeNextId();
- std::unique_ptr<Function> func =
- StartFunction(func_id, type_mgr->GetBoolType(), param_types);
- func->SetFunctionEnd(EndFunction());
- context()->AddFunctionDeclaration(std::move(func));
- context()->AddDebug2Inst(NewName(func_id, func_name));
-
- std::vector<Operand> operands{
- {spv_operand_type_t::SPV_OPERAND_TYPE_ID, {func_id}},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_INTEGER,
- {uint32_t(spv::Decoration::LinkageAttributes)}},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_STRING,
- utils::MakeVector(func_name.c_str())},
- {spv_operand_type_t::SPV_OPERAND_TYPE_LINKAGE_TYPE,
- {uint32_t(spv::LinkageType::Import)}},
- };
- get_decoration_mgr()->AddDecoration(spv::Op::OpDecorate, operands);
-
- search_test_func_id_ = func_id;
- return search_test_func_id_;
-}
-
-uint32_t InstBuffAddrCheckPass::GenSearchAndTest(Instruction* ref_inst,
- InstructionBuilder* builder,
- uint32_t* ref_uptr_id,
- uint32_t stage_idx) {
- // Enable Int64 if necessary
- // Convert reference pointer to uint64
- const uint32_t ref_ptr_id = ref_inst->GetSingleWordInOperand(0);
- Instruction* ref_uptr_inst =
- builder->AddUnaryOp(GetUint64Id(), spv::Op::OpConvertPtrToU, ref_ptr_id);
- *ref_uptr_id = ref_uptr_inst->result_id();
- // Compute reference length in bytes
- analysis::DefUseManager* du_mgr = get_def_use_mgr();
- Instruction* ref_ptr_inst = du_mgr->GetDef(ref_ptr_id);
- const uint32_t ref_ptr_ty_id = ref_ptr_inst->type_id();
- Instruction* ref_ptr_ty_inst = du_mgr->GetDef(ref_ptr_ty_id);
- const uint32_t ref_len =
- GetTypeLength(ref_ptr_ty_inst->GetSingleWordInOperand(1));
- // Gen call to search and test function
- const uint32_t func_id = GetSearchAndTestFuncId();
- const std::vector<uint32_t> args = {
- builder->GetUintConstantId(shader_id_),
- builder->GetUintConstantId(ref_inst->unique_id()),
- GenStageInfo(stage_idx, builder), *ref_uptr_id,
- builder->GetUintConstantId(ref_len)};
- return GenReadFunctionCall(GetBoolId(), func_id, args, builder);
-}
-
-void InstBuffAddrCheckPass::GenBuffAddrCheckCode(
- BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr, uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- // Look for reference through indexed descriptor. If found, analyze and
- // save components. If not, return.
- Instruction* ref_inst = &*ref_inst_itr;
- if (!IsPhysicalBuffAddrReference(ref_inst)) return;
- // Move original block's preceding instructions into first new block
- std::unique_ptr<BasicBlock> new_blk_ptr;
- MovePreludeCode(ref_inst_itr, ref_block_itr, &new_blk_ptr);
- InstructionBuilder builder(
- context(), &*new_blk_ptr,
- IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping);
- new_blocks->push_back(std::move(new_blk_ptr));
- // Generate code to do search and test if all bytes of reference
- // are within a listed buffer. Return reference pointer converted to uint64.
- uint32_t ref_uptr_id;
- uint32_t valid_id =
- GenSearchAndTest(ref_inst, &builder, &ref_uptr_id, stage_idx);
- // Generate test of search results with true branch
- // being full reference and false branch being debug output and zero
- // for the referenced value.
- GenCheckCode(valid_id, ref_inst, new_blocks);
-
- // Move original block's remaining code into remainder/merge block and add
- // to new blocks
- BasicBlock* back_blk_ptr = &*new_blocks->back();
- MovePostludeCode(ref_block_itr, back_blk_ptr);
-}
-
-void InstBuffAddrCheckPass::InitInstBuffAddrCheck() {
- // Initialize base class
- InitializeInstrument();
- // Initialize class
- search_test_func_id_ = 0;
-}
-
-Pass::Status InstBuffAddrCheckPass::ProcessImpl() {
- // The memory model and linkage must always be updated for spirv-link to work
- // correctly.
- AddStorageBufferExt();
- if (!get_feature_mgr()->HasExtension(kSPV_KHR_physical_storage_buffer)) {
- context()->AddExtension("SPV_KHR_physical_storage_buffer");
- }
-
- context()->AddCapability(spv::Capability::PhysicalStorageBufferAddresses);
- Instruction* memory_model = get_module()->GetMemoryModel();
- memory_model->SetInOperand(
- 0u, {uint32_t(spv::AddressingModel::PhysicalStorageBuffer64)});
-
- context()->AddCapability(spv::Capability::Int64);
- context()->AddCapability(spv::Capability::Linkage);
- // Perform bindless bounds check on each entry point function in module
- InstProcessFunction pfn =
- [this](BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr, uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks) {
- return GenBuffAddrCheckCode(ref_inst_itr, ref_block_itr, stage_idx,
- new_blocks);
- };
- InstProcessEntryPointCallTree(pfn);
- // This pass always changes the memory model, so that linking will work
- // properly.
- return Status::SuccessWithChange;
-}
-
-Pass::Status InstBuffAddrCheckPass::Process() {
- InitInstBuffAddrCheck();
- return ProcessImpl();
-}
-
-} // namespace opt
-} // namespace spvtools
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.h b/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.h
deleted file mode 100644
index f07f98a0f2..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/inst_buff_addr_check_pass.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2019 The Khronos Group Inc.
-// Copyright (c) 2019 Valve Corporation
-// Copyright (c) 2019 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef LIBSPIRV_OPT_INST_BUFFER_ADDRESS_PASS_H_
-#define LIBSPIRV_OPT_INST_BUFFER_ADDRESS_PASS_H_
-
-#include "instrument_pass.h"
-
-namespace spvtools {
-namespace opt {
-
-// This class/pass is designed to support the GPU-assisted validation layer of
-// the Buffer Device Address (BDA) extension in
-// https://github.com/KhronosGroup/Vulkan-ValidationLayers. The internal and
-// external design of this class may change as the layer evolves.
-class InstBuffAddrCheckPass : public InstrumentPass {
- public:
- // For test harness only
- InstBuffAddrCheckPass() : InstrumentPass(0, 23, false, true) {}
- // For all other interfaces
- InstBuffAddrCheckPass(uint32_t shader_id)
- : InstrumentPass(0, shader_id, false, true) {}
-
- ~InstBuffAddrCheckPass() override = default;
-
- // See optimizer.hpp for pass user documentation.
- Status Process() override;
-
- const char* name() const override { return "inst-buff-addr-check-pass"; }
-
- private:
- // Return byte length of type |type_id|. Must be int, float, vector, matrix,
- // struct, array or physical pointer. Uses std430 alignment and sizes.
- uint32_t GetTypeLength(uint32_t type_id);
-
- // Add |type_id| param to |input_func| and add id to |param_vec|.
- void AddParam(uint32_t type_id, std::vector<uint32_t>* param_vec,
- std::unique_ptr<Function>* input_func);
-
- // Return id for search and test function. Generate it if not already gen'd.
- uint32_t GetSearchAndTestFuncId();
-
- // Generate code into |builder| to do search of the BDA debug input buffer
- // for the buffer used by |ref_inst| and test that all bytes of reference
- // are within the buffer. Returns id of boolean value which is true if
- // search and test is successful, false otherwise.
- uint32_t GenSearchAndTest(Instruction* ref_inst, InstructionBuilder* builder,
- uint32_t* ref_uptr_id, uint32_t stage_idx);
-
- // This function does checking instrumentation on a single
- // instruction which references through a physical storage buffer address.
- // GenBuffAddrCheckCode generates code that checks that all bytes that
- // are referenced fall within a buffer that was queried via
- // the Vulkan API call vkGetBufferDeviceAddressEXT().
- //
- // The function is designed to be passed to
- // InstrumentPass::InstProcessEntryPointCallTree(), which applies the
- // function to each instruction in a module and replaces the instruction
- // with instrumented code if warranted.
- //
- // If |ref_inst_itr| is a physical storage buffer reference, return in
- // |new_blocks| the result of instrumenting it with validation code within
- // its block at |ref_block_itr|. The validation code first executes a check
- // for the specific condition called for. If the check passes, it executes
- // the remainder of the reference, otherwise writes a record to the debug
- // output buffer stream including |function_idx, instruction_idx, stage_idx|
- // and replaces the reference with the null value of the original type. The
- // block at |ref_block_itr| can just be replaced with the blocks in
- // |new_blocks|, which will contain at least two blocks. The last block will
- // comprise all instructions following |ref_inst_itr|,
- // preceded by a phi instruction if needed.
- //
- // This instrumentation function utilizes GenDebugStreamWrite() to write its
- // error records. The validation-specific part of the error record will
- // have the format:
- //
- // Validation Error Code (=kInstErrorBuffAddr)
- // Buffer Address (lowest 32 bits)
- // Buffer Address (highest 32 bits)
- //
- void GenBuffAddrCheckCode(
- BasicBlock::iterator ref_inst_itr,
- UptrVectorIterator<BasicBlock> ref_block_itr, uint32_t stage_idx,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks);
-
- // Return true if |ref_inst| is a physical buffer address reference, false
- // otherwise.
- bool IsPhysicalBuffAddrReference(Instruction* ref_inst);
-
- // Clone original reference |ref_inst| into |builder| and return id of result
- uint32_t CloneOriginalReference(Instruction* ref_inst,
- InstructionBuilder* builder);
-
- // Generate instrumentation code for boolean test result |check_id|,
- // adding new blocks to |new_blocks|. Generate conditional branch to valid
- // or invalid reference blocks. Generate valid reference block which does
- // original reference |ref_inst|. Then generate invalid reference block which
- // writes debug error output utilizing |ref_inst|, |error_id| and
- // |stage_idx|. Generate merge block for valid and invalid reference blocks.
- // Kill original reference.
- void GenCheckCode(uint32_t check_id, Instruction* ref_inst,
- std::vector<std::unique_ptr<BasicBlock>>* new_blocks);
-
- // Initialize state for instrumenting physical buffer address checking
- void InitInstBuffAddrCheck();
-
- // Apply GenBuffAddrCheckCode to every instruction in module.
- Pass::Status ProcessImpl();
-
- // Id of search and test function, if already gen'd, else zero.
- uint32_t search_test_func_id_;
-};
-
-} // namespace opt
-} // namespace spvtools
-
-#endif // LIBSPIRV_OPT_INST_BUFFER_ADDRESS_PASS_H_
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/optimizer.cpp b/third_party/vulkan-deps/spirv-tools/src/source/opt/optimizer.cpp
index c4c2b0f554..e29bbf7b27 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/optimizer.cpp
+++ b/third_party/vulkan-deps/spirv-tools/src/source/opt/optimizer.cpp
@@ -451,16 +451,6 @@ bool Optimizer::RegisterPassFromFlag(const std::string& flag,
RegisterPass(CreateWorkaround1209Pass());
} else if (pass_name == "replace-invalid-opcode") {
RegisterPass(CreateReplaceInvalidOpcodePass());
- } else if (pass_name == "inst-bindless-check" ||
- pass_name == "inst-desc-idx-check" ||
- pass_name == "inst-buff-oob-check") {
- // preserve legacy names
- RegisterPass(CreateInstBindlessCheckPass(23));
- RegisterPass(CreateSimplificationPass());
- RegisterPass(CreateDeadBranchElimPass());
- RegisterPass(CreateBlockMergePass());
- } else if (pass_name == "inst-buff-addr-check") {
- RegisterPass(CreateInstBuffAddrCheckPass(23));
} else if (pass_name == "convert-relaxed-to-half") {
RegisterPass(CreateConvertRelaxedToHalfPass());
} else if (pass_name == "relax-float-ops") {
@@ -1023,22 +1013,12 @@ Optimizer::PassToken CreateUpgradeMemoryModelPass() {
MakeUnique<opt::UpgradeMemoryModel>());
}
-Optimizer::PassToken CreateInstBindlessCheckPass(uint32_t shader_id) {
- return MakeUnique<Optimizer::PassToken::Impl>(
- MakeUnique<opt::InstBindlessCheckPass>(shader_id));
-}
-
Optimizer::PassToken CreateInstDebugPrintfPass(uint32_t desc_set,
uint32_t shader_id) {
return MakeUnique<Optimizer::PassToken::Impl>(
MakeUnique<opt::InstDebugPrintfPass>(desc_set, shader_id));
}
-Optimizer::PassToken CreateInstBuffAddrCheckPass(uint32_t shader_id) {
- return MakeUnique<Optimizer::PassToken::Impl>(
- MakeUnique<opt::InstBuffAddrCheckPass>(shader_id));
-}
-
Optimizer::PassToken CreateConvertRelaxedToHalfPass() {
return MakeUnique<Optimizer::PassToken::Impl>(
MakeUnique<opt::ConvertToHalfPass>());
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/opt/passes.h b/third_party/vulkan-deps/spirv-tools/src/source/opt/passes.h
index 9d027fbf4c..8b6755f413 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/opt/passes.h
+++ b/third_party/vulkan-deps/spirv-tools/src/source/opt/passes.h
@@ -48,8 +48,6 @@
#include "source/opt/if_conversion.h"
#include "source/opt/inline_exhaustive_pass.h"
#include "source/opt/inline_opaque_pass.h"
-#include "source/opt/inst_bindless_check_pass.h"
-#include "source/opt/inst_buff_addr_check_pass.h"
#include "source/opt/inst_debug_printf_pass.h"
#include "source/opt/interface_var_sroa.h"
#include "source/opt/interp_fixup_pass.h"
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/val/validate_interfaces.cpp b/third_party/vulkan-deps/spirv-tools/src/source/val/validate_interfaces.cpp
index ace548aa1a..8f10b9d07f 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/val/validate_interfaces.cpp
+++ b/third_party/vulkan-deps/spirv-tools/src/source/val/validate_interfaces.cpp
@@ -519,6 +519,8 @@ spv_result_t ValidateLocations(ValidationState_t& _,
std::unordered_set<uint32_t> input_locations;
std::unordered_set<uint32_t> output_locations_index0;
std::unordered_set<uint32_t> output_locations_index1;
+ std::unordered_set<uint32_t> patch_locations_index0;
+ std::unordered_set<uint32_t> patch_locations_index1;
std::unordered_set<uint32_t> seen;
for (uint32_t i = 3; i < entry_point->operands().size(); ++i) {
auto interface_id = entry_point->GetOperandAs<uint32_t>(i);
@@ -534,6 +536,26 @@ spv_result_t ValidateLocations(ValidationState_t& _,
continue;
}
+ // The two Tessellation stages have a "Patch" variable that interface with
+ // the Location mechanism, but are not suppose to be tied to the "normal"
+ // input/output Location.
+ // TODO - SPIR-V allows the Patch decoration to be applied to struct
+ // members, but is not allowed in GLSL/HLSL
+ bool has_patch = false;
+ for (auto& dec : _.id_decorations(interface_var->id())) {
+ if (dec.dec_type() == spv::Decoration::Patch) {
+ has_patch = true;
+ if (auto error = GetLocationsForVariable(_, entry_point, interface_var,
+ &patch_locations_index0,
+ &patch_locations_index1))
+ return error;
+ break;
+ }
+ }
+ if (has_patch) {
+ continue;
+ }
+
auto locations = (storage_class == spv::StorageClass::Input)
? &input_locations
: &output_locations_index0;
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/val/validate_memory.cpp b/third_party/vulkan-deps/spirv-tools/src/source/val/validate_memory.cpp
index 2d6715f423..ef6676fb7b 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/val/validate_memory.cpp
+++ b/third_party/vulkan-deps/spirv-tools/src/source/val/validate_memory.cpp
@@ -349,7 +349,8 @@ spv_result_t CheckMemoryAccess(ValidationState_t& _, const Instruction* inst,
if (mask & uint32_t(spv::MemoryAccessMask::MakePointerVisibleKHR)) {
if (inst->opcode() == spv::Op::OpStore ||
- inst->opcode() == spv::Op::OpCooperativeMatrixStoreNV) {
+ inst->opcode() == spv::Op::OpCooperativeMatrixStoreNV ||
+ inst->opcode() == spv::Op::OpCooperativeMatrixStoreKHR) {
return _.diag(SPV_ERROR_INVALID_ID, inst)
<< "MakePointerVisibleKHR cannot be used with OpStore.";
}
diff --git a/third_party/vulkan-deps/spirv-tools/src/test/opt/CMakeLists.txt b/third_party/vulkan-deps/spirv-tools/src/test/opt/CMakeLists.txt
index 92d266bba3..384f361040 100644
--- a/third_party/vulkan-deps/spirv-tools/src/test/opt/CMakeLists.txt
+++ b/third_party/vulkan-deps/spirv-tools/src/test/opt/CMakeLists.txt
@@ -60,8 +60,6 @@ add_spvtools_unittest(TARGET opt
inline_opaque_test.cpp
inline_test.cpp
insert_extract_elim_test.cpp
- inst_bindless_check_test.cpp
- inst_buff_addr_check_test.cpp
inst_debug_printf_test.cpp
instruction_list_test.cpp
instruction_test.cpp
diff --git a/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_bindless_check_test.cpp b/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_bindless_check_test.cpp
deleted file mode 100644
index 08da367fd5..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_bindless_check_test.cpp
+++ /dev/null
@@ -1,5312 +0,0 @@
-// Copyright (c) 2017-2022 Valve Corporation
-// Copyright (c) 2017-2022 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Bindless Check Instrumentation Tests.
-
-#include <string>
-#include <vector>
-
-#include "test/opt/pass_fixture.h"
-#include "test/opt/pass_utils.h"
-
-namespace spvtools {
-namespace opt {
-namespace {
-
-using InstBindlessTest = PassTest<::testing::Test>;
-
-static const std::string kFuncName = "inst_bindless_check_desc";
-
-static const std::string kImportDeco = R"(
-;CHECK: OpDecorate %)" + kFuncName + R"( LinkageAttributes ")" +
- kFuncName + R"(" Import
-)";
-
-static const std::string kImportStub = R"(
-;CHECK: %)" + kFuncName + R"( = OpFunction %bool None {{%\w+}}
-;CHECK: OpFunctionEnd
-)";
-
-TEST_F(InstBindlessTest, Simple) {
- // Texture2D g_tColor[128];
- //
- // layout(push_constant) cbuffer PerViewConstantBuffer_t
- // {
- // uint g_nDataIdx;
- // };
- //
- // SamplerState g_sAniso;
- //
- // struct PS_INPUT
- // {
- // float2 vTextureCoords : TEXCOORD2;
- // };
- //
- // struct PS_OUTPUT
- // {
- // float4 vColor : SV_Target0;
- // };
- //
- // PS_OUTPUT MainPs(PS_INPUT i)
- // {
- // PS_OUTPUT ps_output;
- // ps_output.vColor =
- // g_tColor[ g_nDataIdx ].Sample(g_sAniso, i.vTextureCoords.xy);
- // return ps_output;
- // }
-
- const std::string entry = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-)";
-
- // clang-format off
- const std::string names_annots = R"(
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 3
-OpDecorate %g_tColor Binding 0
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %g_sAniso DescriptorSet 0
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0)"
-+ kImportDeco +
-R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-)";
-
- const std::string consts_types_vars = R"(
-%void = OpTypeVoid
-%10 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_16_uint_128 = OpTypeArray %16 %uint_128
-%_ptr_UniformConstant__arr_16_uint_128 = OpTypePointer UniformConstant %_arr_16_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_16_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-%24 = OpTypeSampler
-%_ptr_UniformConstant_24 = OpTypePointer UniformConstant %24
-%g_sAniso = OpVariable %_ptr_UniformConstant_24 UniformConstant
-%26 = OpTypeSampledImage %16
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %10
-%29 = OpLabel
-%30 = OpLoad %v2float %i_vTextureCoords
-%31 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%32 = OpLoad %uint %31
-%33 = OpAccessChain %_ptr_UniformConstant_16 %g_tColor %32
-%34 = OpLoad %16 %33
-%35 = OpLoad %24 %g_sAniso
-%36 = OpSampledImage %26 %34 %35
-%37 = OpImageSampleImplicitLod %v4float %36 %30
-OpStore %_entryPointOutput_vColor %37
-;CHECK-NOT: %37 = OpImageSampleImplicitLod %v4float %36 %30
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %37
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_57 {{%\w+}} %uint_3 %uint_0 %32 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %16 %33
-;CHECK: {{%\w+}} = OpSampledImage %26 {{%\w+}} %35
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(
- entry + names_annots + consts_types_vars + kImportStub + main_func, true,
- 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentMultipleInstructions) {
- // Texture2D g_tColor[128];
- //
- // layout(push_constant) cbuffer PerViewConstantBuffer_t
- // {
- // uint g_nDataIdx;
- // uint g_nDataIdx2;
- // };
- //
- // SamplerState g_sAniso;
- //
- // struct PS_INPUT
- // {
- // float2 vTextureCoords : TEXCOORD2;
- // };
- //
- // struct PS_OUTPUT
- // {
- // float4 vColor : SV_Target0;
- // };
- //
- // PS_OUTPUT MainPs(PS_INPUT i)
- // {
- // PS_OUTPUT ps_output;
- //
- // float t = g_tColor[g_nDataIdx ].Sample(g_sAniso, i.vTextureCoords.xy);
- // float t2 = g_tColor[g_nDataIdx2].Sample(g_sAniso, i.vTextureCoords.xy);
- // ps_output.vColor = t + t2;
- // return ps_output;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 3
-OpDecorate %g_tColor Binding 4
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpMemberDecorate %PerViewConstantBuffer_t 1 Offset 4
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %g_sAniso DescriptorSet 3
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%10 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%int_1 = OpConstant %int 1
-%17 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_17_uint_128 = OpTypeArray %17 %uint_128
-%_ptr_UniformConstant__arr_17_uint_128 = OpTypePointer UniformConstant %_arr_17_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_17_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17
-%25 = OpTypeSampler
-%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
-%g_sAniso = OpVariable %_ptr_UniformConstant_25 UniformConstant
-%27 = OpTypeSampledImage %17
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %10
-%30 = OpLabel
-%31 = OpLoad %v2float %i_vTextureCoords
-%32 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%33 = OpLoad %uint %32
-%34 = OpAccessChain %_ptr_UniformConstant_17 %g_tColor %33
-%35 = OpLoad %17 %34
-%36 = OpLoad %25 %g_sAniso
-%37 = OpSampledImage %27 %35 %36
-%38 = OpImageSampleImplicitLod %v4float %37 %31
-;CHECK-NOT: %38 = OpImageSampleImplicitLod %v4float %37 %31
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_60 {{%\w+}} %uint_3 %uint_4 %33 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %17 %34
-;CHECK: {{%\w+}} = OpSampledImage %27 {{%\w+}} %36
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %31
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-%39 = OpAccessChain %_ptr_PushConstant_uint %_ %int_1
-%40 = OpLoad %uint %39
-%41 = OpAccessChain %_ptr_UniformConstant_17 %g_tColor %40
-%42 = OpLoad %17 %41
-%43 = OpSampledImage %27 %42 %36
-%44 = OpImageSampleImplicitLod %v4float %43 %31
-%45 = OpFAdd %v4float %38 %44
-;CHECK-NOT: %44 = OpImageSampleImplicitLod %v4float %43 %31
-;CHECK-NOT: %45 = OpFAdd %v4float %38 %44
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_66 {{%\w+}} %uint_3 %uint_4 %40 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %17 %41
-;CHECK: {{%\w+}} = OpSampledImage %27 {{%\w+}} %36
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %31
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %45 = OpFAdd %v4float {{%\w+}} {{%\w+}}
-OpStore %_entryPointOutput_vColor %45
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentOpImage) {
- // This test verifies that the pass will correctly instrument shader
- // using OpImage. This test was created by editing the SPIR-V
- // from the Simple test.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability StorageImageReadWithoutFormat
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 3
-OpDecorate %g_tColor Binding 9
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%v2int = OpTypeVector %int 2
-%int_0 = OpConstant %int 0
-%20 = OpTypeImage %float 2D 0 0 0 0 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%39 = OpTypeSampledImage %20
-%_arr_39_uint_128 = OpTypeArray %39 %uint_128
-%_ptr_UniformConstant__arr_39_uint_128 = OpTypePointer UniformConstant %_arr_39_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_39_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_39 = OpTypePointer UniformConstant %39
-%_ptr_Input_v2int = OpTypePointer Input %v2int
-%i_vTextureCoords = OpVariable %_ptr_Input_v2int Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%53 = OpLoad %v2int %i_vTextureCoords
-%63 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%64 = OpLoad %uint %63
-%65 = OpAccessChain %_ptr_UniformConstant_39 %g_tColor %64
-%66 = OpLoad %39 %65
-%75 = OpImage %20 %66
-%71 = OpImageRead %v4float %75 %53
-OpStore %_entryPointOutput_vColor %71
-;CHECK-NOT: %71 = OpImageRead %v4float %75 %53
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %71
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_3 %uint_9 %64 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %39 %65
-;CHECK: {{%\w+}} = OpImage %20 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %53
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentSampledImage) {
- // This test verifies that the pass will correctly instrument shader
- // using sampled image. This test was created by editing the SPIR-V
- // from the Simple test.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 4
-OpDecorate %g_tColor Binding 11
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%20 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%39 = OpTypeSampledImage %20
-%_arr_39_uint_128 = OpTypeArray %39 %uint_128
-%_ptr_UniformConstant__arr_39_uint_128 = OpTypePointer UniformConstant %_arr_39_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_39_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_39 = OpTypePointer UniformConstant %39
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%53 = OpLoad %v2float %i_vTextureCoords
-%63 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%64 = OpLoad %uint %63
-%65 = OpAccessChain %_ptr_UniformConstant_39 %g_tColor %64
-%66 = OpLoad %39 %65
-%71 = OpImageSampleImplicitLod %v4float %66 %53
-OpStore %_entryPointOutput_vColor %71
-;CHECK-NOT: %71 = OpImageSampleImplicitLod %v4float %66 %53
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %71
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_50 {{%\w+}} %uint_4 %uint_11 %64 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %39 %65
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %53
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentImageWrite) {
- // This test verifies that the pass will correctly instrument shader
- // doing bindless image write. This test was created by editing the SPIR-V
- // from the Simple test.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability StorageImageWriteWithoutFormat
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 30
-OpDecorate %g_tColor Binding 2
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%v2int = OpTypeVector %int 2
-%int_0 = OpConstant %int 0
-%20 = OpTypeImage %float 2D 0 0 0 0 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%80 = OpConstantNull %v4float
-%_arr_20_uint_128 = OpTypeArray %20 %uint_128
-%_ptr_UniformConstant__arr_20_uint_128 = OpTypePointer UniformConstant %_arr_20_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_20_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20
-%_ptr_Input_v2int = OpTypePointer Input %v2int
-%i_vTextureCoords = OpVariable %_ptr_Input_v2int Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%53 = OpLoad %v2int %i_vTextureCoords
-%63 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%64 = OpLoad %uint %63
-%65 = OpAccessChain %_ptr_UniformConstant_20 %g_tColor %64
-%66 = OpLoad %20 %65
-OpImageWrite %66 %53 %80
-OpStore %_entryPointOutput_vColor %80
-;CHECK-NOT: OpImageWrite %66 %53 %80
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %80
-;CHECK: %32 = OpLoad %16 %31
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_30 %uint_2 %30 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %16 %31
-;CHECK: OpImageWrite {{%\w+}} %28 %19
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %_entryPointOutput_vColor %19
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentVertexSimple) {
- // This test verifies that the pass will correctly instrument shader
- // doing bindless image write. This test was created by editing the SPIR-V
- // from the Simple test.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability Sampled1D
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Vertex %main "main" %_ %coords2D
-OpSource GLSL 450
-OpName %main "main"
-OpName %lod "lod"
-OpName %coords1D "coords1D"
-OpName %gl_PerVertex "gl_PerVertex"
-OpMemberName %gl_PerVertex 0 "gl_Position"
-OpMemberName %gl_PerVertex 1 "gl_PointSize"
-OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
-OpMemberName %gl_PerVertex 3 "gl_CullDistance"
-OpName %_ ""
-OpName %texSampler1D "texSampler1D"
-OpName %foo "foo"
-OpMemberName %foo 0 "g_idx"
-OpName %__0 ""
-OpName %coords2D "coords2D"
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
-OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
-OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
-OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
-OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
-OpDecorate %gl_PerVertex Block
-OpDecorate %texSampler1D DescriptorSet 2
-OpDecorate %texSampler1D Binding 13
-OpMemberDecorate %foo 0 Offset 0
-OpDecorate %foo Block
-OpDecorate %__0 DescriptorSet 7
-OpDecorate %__0 Binding 5
-OpDecorate %coords2D Location 0
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Function_float = OpTypePointer Function %float
-%float_3 = OpConstant %float 3
-%float_1_78900003 = OpConstant %float 1.78900003
-%v4float = OpTypeVector %float 4
-%uint = OpTypeInt 32 0
-%uint_1 = OpConstant %uint 1
-%_arr_float_uint_1 = OpTypeArray %float %uint_1
-%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
-%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
-%_ = OpVariable %_ptr_Output_gl_PerVertex Output
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%21 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%22 = OpTypeSampledImage %21
-%uint_128 = OpConstant %uint 128
-%_arr_22_uint_128 = OpTypeArray %22 %uint_128
-%_ptr_UniformConstant__arr_22_uint_128 = OpTypePointer UniformConstant %_arr_22_uint_128
-%texSampler1D = OpVariable %_ptr_UniformConstant__arr_22_uint_128 UniformConstant
-%foo = OpTypeStruct %int
-%_ptr_Uniform_foo = OpTypePointer Uniform %foo
-%__0 = OpVariable %_ptr_Uniform_foo Uniform
-%_ptr_Uniform_int = OpTypePointer Uniform %int
-%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%v2float = OpTypeVector %float 2
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%coords2D = OpVariable %_ptr_Input_v2float Input
-;CHECK: %_ptr_Input_uint = OpTypePointer Input %uint
-;CHECK: %gl_VertexIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: %gl_InstanceIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%lod = OpVariable %_ptr_Function_float Function
-%coords1D = OpVariable %_ptr_Function_float Function
-OpStore %lod %float_3
-OpStore %coords1D %float_1_78900003
-%31 = OpAccessChain %_ptr_Uniform_int %__0 %int_0
-%32 = OpLoad %int %31
-%34 = OpAccessChain %_ptr_UniformConstant_22 %texSampler1D %32
-%35 = OpLoad %22 %34
-%36 = OpLoad %float %coords1D
-%37 = OpLoad %float %lod
-%38 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
-%40 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-OpStore %40 %38
-;CHECK-NOT: %38 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37
-;CHECK-NOT: %40 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-;CHECK-NOT: OpStore %40 %38
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_70 {{%\w+}} %uint_7 %uint_5 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %int {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %int {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_UniformConstant_25 %texSampler1D {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %float %coords1D
-;CHECK: {{%\w+}} = OpLoad %float %lod
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_75 {{%\w+}} %uint_2 %uint_13 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %25 %38
-;CHECK: {{%\w+}} = OpImageSampleExplicitLod %v4float {{%\w+}} %40 Lod %41
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: %43 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-;CHECK: OpStore %43 {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentTeseSimple) {
- // This test verifies that the pass will correctly instrument tessellation
- // evaluation shader doing bindless buffer load.
- //
- // clang-format off
- //
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(std140, set = 9, binding = 1) uniform ufoo { uint index; } uniform_index_buffer;
- //
- // layout(set = 9, binding = 2) buffer bfoo { vec4 val; } adds[11];
- //
- // layout(triangles, equal_spacing, cw) in;
- //
- // void main() {
- // gl_Position = adds[uniform_index_buffer.index].val;
- // }
- //
-
- const std::string defs = R"(
-OpCapability Tessellation
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint TessellationEvaluation %main "main" %_
-;CHECK: OpEntryPoint TessellationEvaluation %main "main" %_ %gl_PrimitiveID %gl_TessCoord
-OpExecutionMode %main Triangles
-OpExecutionMode %main SpacingEqual
-OpExecutionMode %main VertexOrderCw
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %gl_PerVertex "gl_PerVertex"
-OpMemberName %gl_PerVertex 0 "gl_Position"
-OpMemberName %gl_PerVertex 1 "gl_PointSize"
-OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
-OpMemberName %gl_PerVertex 3 "gl_CullDistance"
-OpName %_ ""
-OpName %bfoo "bfoo"
-OpMemberName %bfoo 0 "val"
-OpName %adds "adds"
-OpName %ufoo "ufoo"
-OpMemberName %ufoo 0 "index"
-OpName %uniform_index_buffer "uniform_index_buffer"
-OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
-OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
-OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
-OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
-OpDecorate %gl_PerVertex Block
-OpMemberDecorate %bfoo 0 Offset 0
-OpDecorate %bfoo Block
-OpDecorate %adds DescriptorSet 9
-OpDecorate %adds Binding 1
-OpMemberDecorate %ufoo 0 Offset 0
-OpDecorate %ufoo Block
-OpDecorate %uniform_index_buffer DescriptorSet 9
-OpDecorate %uniform_index_buffer Binding 2
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_PrimitiveID BuiltIn PrimitiveId
-;CHECK: OpDecorate %gl_TessCoord BuiltIn TessCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%uint = OpTypeInt 32 0
-%uint_1 = OpConstant %uint 1
-%_arr_float_uint_1 = OpTypeArray %float %uint_1
-%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
-%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
-%_ = OpVariable %_ptr_Output_gl_PerVertex Output
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%bfoo = OpTypeStruct %v4float
-%uint_11 = OpConstant %uint 11
-%_arr_bfoo_uint_11 = OpTypeArray %bfoo %uint_11
-%_ptr_StorageBuffer__arr_bfoo_uint_11 = OpTypePointer StorageBuffer %_arr_bfoo_uint_11
-%adds = OpVariable %_ptr_StorageBuffer__arr_bfoo_uint_11 StorageBuffer
-%ufoo = OpTypeStruct %uint
-%_ptr_Uniform_ufoo = OpTypePointer Uniform %ufoo
-%uniform_index_buffer = OpVariable %_ptr_Uniform_ufoo Uniform
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-;CHECK: %_ptr_Input_uint = OpTypePointer Input %uint
-;CHECK: %gl_PrimitiveID = OpVariable %_ptr_Input_uint Input
-;CHECK: %v3float = OpTypeVector %float 3
-;CHECK: %_ptr_Input_v3float = OpTypePointer Input %v3float
-;CHECK: %gl_TessCoord = OpVariable %_ptr_Input_v3float Input
-;CHECK: %v3uint = OpTypeVector %uint 3
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func =
- R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%25 = OpAccessChain %_ptr_Uniform_uint %uniform_index_buffer %int_0
-%26 = OpLoad %uint %25
-%28 = OpAccessChain %_ptr_StorageBuffer_v4float %adds %26 %int_0
-%29 = OpLoad %v4float %28
-;CHECK-NOT: %29 = OpLoad %v4float %28
-;CHECK: {{%\w+}} = OpLoad %uint %gl_PrimitiveID
-;CHECK: {{%\w+}} = OpLoad %v3float %gl_TessCoord
-;CHECK: {{%\w+}} = OpBitcast %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_2 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_62 {{%\w+}} %uint_9 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %27
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %uint {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-%31 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-OpStore %31 %29
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %uint %gl_PrimitiveID
-;CHECK: {{%\w+}} = OpLoad %v3float %gl_TessCoord
-;CHECK: {{%\w+}} = OpBitcast %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_2 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_64 {{%\w+}} %uint_9 %uint_1 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v4float %29
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: %31 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-;CHECK: OpStore %31 [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentTesc) {
- // This test verifies that the pass will correctly instrument tessellation
- // control shader
- //
- // clang-format off
- //
- // #version 450
- // layout(vertices = 3) out;
- // layout(set = 0, binding = 0) uniform texture1D _77;
- // layout(set = 0, binding = 1) uniform sampler _78;
-
- // layout(location = 1) flat in int _3[];
- // layout(location = 0) out vec4 _5[3];
-
- // void main()
- // {
- // float param;
- // if (_3[gl_InvocationID] == 0)
- // {
- // param = 0.0234375;
- // }
- // else
- // {
- // param = 1.0156199932098388671875;
- // }
- // _5[gl_InvocationID] = textureLod(sampler1D(_77, _78), param, 0.0);
- // vec4 _203;
- // if (gl_InvocationID == 0)
- // {
- // _203 = gl_in[0].gl_Position;
- // }
- // else
- // {
- // _203 = gl_in[2].gl_Position;
- // }
- // gl_out[gl_InvocationID].gl_Position = _203;
- // gl_TessLevelInner[0] = 2.7999999523162841796875;
- // gl_TessLevelInner[1] = 2.7999999523162841796875;
- // gl_TessLevelOuter[0] = 2.7999999523162841796875;
- // gl_TessLevelOuter[1] = 2.7999999523162841796875;
- // gl_TessLevelOuter[2] = 2.7999999523162841796875;
- // gl_TessLevelOuter[3] = 2.7999999523162841796875;
- // }
- //
- // clang-format on
- //
- //
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Tessellation
-OpCapability Sampled1D
-;CHECK: OpCapability Linkage
-;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class"
-;CHECK: OpExtension "SPV_KHR_physical_storage_buffer"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-;CHECK: OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint TessellationControl %main "main" %_3 %gl_InvocationID %_5 %gl_in %gl_out %gl_TessLevelInner %gl_TessLevelOuter
-;CHECK: OpEntryPoint TessellationControl %main "main" %_3 %gl_InvocationID %_5 %gl_in %gl_out %gl_TessLevelInner %gl_TessLevelOuter %gl_PrimitiveID
-OpExecutionMode %main OutputVertices 3
-OpSource GLSL 450
-OpName %main "main"
-OpName %_3 "_3"
-OpName %gl_InvocationID "gl_InvocationID"
-OpName %param "param"
-OpName %_5 "_5"
-OpName %_77 "_77"
-OpName %_78 "_78"
-OpName %_203 "_203"
-OpName %gl_PerVertex "gl_PerVertex"
-OpMemberName %gl_PerVertex 0 "gl_Position"
-OpMemberName %gl_PerVertex 1 "gl_PointSize"
-OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
-OpMemberName %gl_PerVertex 3 "gl_CullDistance"
-OpName %gl_in "gl_in"
-OpName %gl_PerVertex_0 "gl_PerVertex"
-OpMemberName %gl_PerVertex_0 0 "gl_Position"
-OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
-OpMemberName %gl_PerVertex_0 2 "gl_ClipDistance"
-OpMemberName %gl_PerVertex_0 3 "gl_CullDistance"
-OpName %gl_out "gl_out"
-OpName %gl_TessLevelInner "gl_TessLevelInner"
-OpName %gl_TessLevelOuter "gl_TessLevelOuter"
-OpDecorate %_3 Flat
-OpDecorate %_3 Location 1
-OpDecorate %gl_InvocationID BuiltIn InvocationId
-OpDecorate %_5 Location 0
-OpDecorate %_77 DescriptorSet 0
-OpDecorate %_77 Binding 0
-OpDecorate %_78 DescriptorSet 0
-OpDecorate %_78 Binding 1
-OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
-OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
-OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
-OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
-OpDecorate %gl_PerVertex Block
-OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
-OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
-OpMemberDecorate %gl_PerVertex_0 2 BuiltIn ClipDistance
-OpMemberDecorate %gl_PerVertex_0 3 BuiltIn CullDistance
-OpDecorate %gl_PerVertex_0 Block
-OpDecorate %gl_TessLevelInner Patch
-OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner
-OpDecorate %gl_TessLevelOuter Patch
-OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%int = OpTypeInt 32 1
-%uint = OpTypeInt 32 0
-%uint_32 = OpConstant %uint 32
-%_arr_int_uint_32 = OpTypeArray %int %uint_32
-%_ptr_Input__arr_int_uint_32 = OpTypePointer Input %_arr_int_uint_32
-%_3 = OpVariable %_ptr_Input__arr_int_uint_32 Input
-%_ptr_Input_int = OpTypePointer Input %int
-%gl_InvocationID = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%bool = OpTypeBool
-%float = OpTypeFloat 32
-%_ptr_Function_float = OpTypePointer Function %float
-%float_0_0234375 = OpConstant %float 0.0234375
-%float_1_01561999 = OpConstant %float 1.01561999
-%v4float = OpTypeVector %float 4
-%uint_3 = OpConstant %uint 3
-%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3
-%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3
-%_5 = OpVariable %_ptr_Output__arr_v4float_uint_3 Output
-%34 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_34 = OpTypePointer UniformConstant %34
-%_77 = OpVariable %_ptr_UniformConstant_34 UniformConstant
-%38 = OpTypeSampler
-%_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38
-%_78 = OpVariable %_ptr_UniformConstant_38 UniformConstant
-%42 = OpTypeSampledImage %34
-%float_0 = OpConstant %float 0
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-%uint_1 = OpConstant %uint 1
-%_arr_float_uint_1 = OpTypeArray %float %uint_1
-%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
-%_arr_gl_PerVertex_uint_32 = OpTypeArray %gl_PerVertex %uint_32
-%_ptr_Input__arr_gl_PerVertex_uint_32 = OpTypePointer Input %_arr_gl_PerVertex_uint_32
-%gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_uint_32 Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%int_2 = OpConstant %int 2
-%gl_PerVertex_0 = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
-%_arr_gl_PerVertex_0_uint_3 = OpTypeArray %gl_PerVertex_0 %uint_3
-%_ptr_Output__arr_gl_PerVertex_0_uint_3 = OpTypePointer Output %_arr_gl_PerVertex_0_uint_3
-%gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_0_uint_3 Output
-%uint_2 = OpConstant %uint 2
-%_arr_float_uint_2 = OpTypeArray %float %uint_2
-%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2
-%gl_TessLevelInner = OpVariable %_ptr_Output__arr_float_uint_2 Output
-%float_2_79999995 = OpConstant %float 2.79999995
-%_ptr_Output_float = OpTypePointer Output %float
-%int_1 = OpConstant %int 1
-%uint_4 = OpConstant %uint 4
-%_arr_float_uint_4 = OpTypeArray %float %uint_4
-%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
-%gl_TessLevelOuter = OpVariable %_ptr_Output__arr_float_uint_4 Output
-%int_3 = OpConstant %int 3
-)";
-
- const std::string main_func =
- R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%param = OpVariable %_ptr_Function_float Function
-%_203 = OpVariable %_ptr_Function_v4float Function
-%14 = OpLoad %int %gl_InvocationID
-%15 = OpAccessChain %_ptr_Input_int %_3 %14
-%16 = OpLoad %int %15
-%19 = OpIEqual %bool %16 %int_0
-OpSelectionMerge %21 None
-OpBranchConditional %19 %20 %26
-%20 = OpLabel
-;CHECK-NOT: %15 = OpAccessChain %_ptr_Input_int %_3 %14
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %int %gl_InvocationID
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_Input_int %_3 {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %int {{%\w+}}
-;CHECK: {{%\w+}} = OpIEqual %bool {{%\w+}} %int_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpStore %param %float_0_0234375
-OpBranch %21
-%26 = OpLabel
-OpStore %param %float_1_01561999
-OpBranch %21
-%21 = OpLabel
-%33 = OpLoad %int %gl_InvocationID
-%37 = OpLoad %34 %_77
-%41 = OpLoad %38 %_78
-%43 = OpSampledImage %42 %37 %41
-%44 = OpLoad %float %param
-;CHECK: {{%\w+}} = OpLoad %int %gl_InvocationID
-;CHECK: {{%\w+}} = OpBitcast %uint {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %uint %gl_PrimitiveID
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_1 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %inst_bindless_check_desc %uint_23 %uint_129 {{%\w+}} %uint_0 %uint_0 %uint_0 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-%46 = OpImageSampleExplicitLod %v4float %43 %44 Lod %float_0
-%48 = OpAccessChain %_ptr_Output_v4float %_5 %33
-OpStore %48 %46
-;CHECK-NOT: %48 = OpAccessChain %_ptr_Output_v4float %_5 %33
-;CHECK-NOT: OpStore %48 %46
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: [[access_chain:%\w+]] = OpAccessChain %_ptr_Output_v4float %_5 {{%\w+}}
-;CHECK: OpStore [[access_chain]] [[phi_result]]
-%49 = OpLoad %int %gl_InvocationID
-%50 = OpIEqual %bool %49 %int_0
-OpSelectionMerge %52 None
-OpBranchConditional %50 %51 %64
-%51 = OpLabel
-%62 = OpAccessChain %_ptr_Input_v4float %gl_in %int_0 %int_0
-%63 = OpLoad %v4float %62
-OpStore %_203 %63
-OpBranch %52
-%64 = OpLabel
-%66 = OpAccessChain %_ptr_Input_v4float %gl_in %int_2 %int_0
-%67 = OpLoad %v4float %66
-OpStore %_203 %67
-OpBranch %52
-%52 = OpLabel
-%72 = OpLoad %int %gl_InvocationID
-%73 = OpLoad %v4float %_203
-%74 = OpAccessChain %_ptr_Output_v4float %gl_out %72 %int_0
-OpStore %74 %73
-%81 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_0
-OpStore %81 %float_2_79999995
-%83 = OpAccessChain %_ptr_Output_float %gl_TessLevelInner %int_1
-OpStore %83 %float_2_79999995
-%88 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_0
-OpStore %88 %float_2_79999995
-%89 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_1
-OpStore %89 %float_2_79999995
-%90 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_2
-OpStore %90 %float_2_79999995
-%92 = OpAccessChain %_ptr_Output_float %gl_TessLevelOuter %int_3
-OpStore %92 %float_2_79999995
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, MultipleDebugFunctions) {
- // Same source as Simple, but compiled -g and not optimized, especially not
- // inlined. The OpSource has had the source extracted for the sake of brevity.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%2 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-%1 = OpString "foo5.frag"
-OpSource HLSL 500 %1
-OpName %MainPs "MainPs"
-OpName %PS_INPUT "PS_INPUT"
-OpMemberName %PS_INPUT 0 "vTextureCoords"
-OpName %PS_OUTPUT "PS_OUTPUT"
-OpMemberName %PS_OUTPUT 0 "vColor"
-OpName %_MainPs_struct_PS_INPUT_vf21_ "@MainPs(struct-PS_INPUT-vf21;"
-OpName %i "i"
-OpName %ps_output "ps_output"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %g_sAniso "g_sAniso"
-OpName %i_0 "i"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpName %param "param"
-OpDecorate %g_tColor DescriptorSet 1
-OpDecorate %g_tColor Binding 2
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %g_sAniso DescriptorSet 1
-OpDecorate %g_sAniso Binding 3
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%4 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%PS_INPUT = OpTypeStruct %v2float
-%_ptr_Function_PS_INPUT = OpTypePointer Function %PS_INPUT
-%v4float = OpTypeVector %float 4
-%PS_OUTPUT = OpTypeStruct %v4float
-%13 = OpTypeFunction %PS_OUTPUT %_ptr_Function_PS_INPUT
-%_ptr_Function_PS_OUTPUT = OpTypePointer Function %PS_OUTPUT
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%21 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_21_uint_128 = OpTypeArray %21 %uint_128
-%_ptr_UniformConstant__arr_21_uint_128 = OpTypePointer UniformConstant %_arr_21_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_21_uint_128 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21
-%36 = OpTypeSampler
-%_ptr_UniformConstant_36 = OpTypePointer UniformConstant %36
-%g_sAniso = OpVariable %_ptr_UniformConstant_36 UniformConstant
-%40 = OpTypeSampledImage %21
-%_ptr_Function_v2float = OpTypePointer Function %v2float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string func1 = R"(
-%MainPs = OpFunction %void None %4
-%6 = OpLabel
-%i_0 = OpVariable %_ptr_Function_PS_INPUT Function
-%param = OpVariable %_ptr_Function_PS_INPUT Function
-OpLine %1 21 0
-%54 = OpLoad %v2float %i_vTextureCoords
-%55 = OpAccessChain %_ptr_Function_v2float %i_0 %int_0
-OpStore %55 %54
-%59 = OpLoad %PS_INPUT %i_0
-OpStore %param %59
-%60 = OpFunctionCall %PS_OUTPUT %_MainPs_struct_PS_INPUT_vf21_ %param
-%61 = OpCompositeExtract %v4float %60 0
-OpStore %_entryPointOutput_vColor %61
-OpReturn
-OpFunctionEnd
-)";
-
- const std::string func2 = R"(
-%_MainPs_struct_PS_INPUT_vf21_ = OpFunction %PS_OUTPUT None %13
-%i = OpFunctionParameter %_ptr_Function_PS_INPUT
-%16 = OpLabel
-%ps_output = OpVariable %_ptr_Function_PS_OUTPUT Function
-OpLine %1 24 0
-%31 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%32 = OpLoad %uint %31
-%34 = OpAccessChain %_ptr_UniformConstant_21 %g_tColor %32
-%35 = OpLoad %21 %34
-%39 = OpLoad %36 %g_sAniso
-%41 = OpSampledImage %40 %35 %39
-%43 = OpAccessChain %_ptr_Function_v2float %i %int_0
-%44 = OpLoad %v2float %43
-%45 = OpImageSampleImplicitLod %v4float %41 %44
-;CHECK-NOT: %45 = OpImageSampleImplicitLod %v4float %41 %44
-;CHECK: {{%\w+}} = OpLoad %v2float {{%\w+}}
-;CHECK: OpNoLine
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_128 {{%\w+}} %uint_1 %uint_2 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %27 {{%\w+}}
-;CHECK: {{%\w+}} = OpSampledImage %37 {{%\w+}} {{%\w+}}
-;CHECK: OpLine %5 24 0
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} {{%\w+}}
-;CHECK: OpNoLine
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-%47 = OpAccessChain %_ptr_Function_v4float %ps_output %int_0
-OpStore %47 %45
-;CHECK-NOT: OpStore %47 %45
-;CHECK: [[store_loc:%\w+]] = OpAccessChain %_ptr_Function_v4float %ps_output %int_0
-;CHECK: OpStore [[store_loc]] [[phi_result]]
-OpLine %1 25 0
-%48 = OpLoad %PS_OUTPUT %ps_output
-OpReturnValue %48
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(
- defs + kImportStub + func1 + func2, true, 23u);
-}
-
-TEST_F(InstBindlessTest, RuntimeArray) {
- // This test verifies that the pass will correctly instrument shader
- // with runtime descriptor array. This test was created by editing the
- // SPIR-V from the Simple test.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability RuntimeDescriptorArray
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 1
-OpDecorate %g_tColor Binding 2
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %g_sAniso DescriptorSet 1
-OpDecorate %g_sAniso Binding 3
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%20 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_1 = OpConstant %uint 1
-%_rarr_20 = OpTypeRuntimeArray %20
-%_ptr_UniformConstant__arr_20 = OpTypePointer UniformConstant %_rarr_20
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_20 UniformConstant
-%PerViewConstantBuffer_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20
-%35 = OpTypeSampler
-%_ptr_UniformConstant_35 = OpTypePointer UniformConstant %35
-%g_sAniso = OpVariable %_ptr_UniformConstant_35 UniformConstant
-%39 = OpTypeSampledImage %20
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%53 = OpLoad %v2float %i_vTextureCoords
-%63 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%64 = OpLoad %uint %63
-%65 = OpAccessChain %_ptr_UniformConstant_20 %g_tColor %64
-%66 = OpLoad %20 %65
-%67 = OpLoad %35 %g_sAniso
-%68 = OpSampledImage %39 %66 %67
-%71 = OpImageSampleImplicitLod %v4float %68 %53
-OpStore %_entryPointOutput_vColor %71
-;CHECK-NOT: %71 = OpImageSampleImplicitLod %v4float %68 %53
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %71
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[check_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_60 {{%\w+}} %uint_1 %uint_2 %32 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %16 %33
-;CHECK: {{%\w+}} = OpSampledImage %26 {{%\w+}} %35
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result_1:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor [[phi_result_1]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstrumentInitCheckOnScalarDescriptor) {
- // This test verifies that the pass will correctly instrument vanilla
- // texture sample on a scalar descriptor with an initialization check if the
- // input_init_enable argument is set to true. This can happen when the
- // descriptor indexing extension is enabled in the API but the SPIR-V
- // does not have the extension enabled because it does not contain a
- // runtime array. This is the same shader as NoInstrumentNonBindless.
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 1
-OpDecorate %g_tColor Binding 2
-OpDecorate %g_sAniso DescriptorSet 1
-OpDecorate %g_sAniso Binding 2
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%8 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-%g_tColor = OpVariable %_ptr_UniformConstant_12 UniformConstant
-%14 = OpTypeSampler
-%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
-%g_sAniso = OpVariable %_ptr_UniformConstant_14 UniformConstant
-%16 = OpTypeSampledImage %12
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%MainPs = OpFunction %void None %8
-%19 = OpLabel
-%20 = OpLoad %v2float %i_vTextureCoords
-%21 = OpLoad %12 %g_tColor
-%22 = OpLoad %14 %g_sAniso
-%23 = OpSampledImage %16 %21 %22
-%24 = OpImageSampleImplicitLod %v4float %23 %20
-OpStore %_entryPointOutput_vColor %24
-;CHECK-NOT: %24 = OpImageSampleImplicitLod %v4float %23 %20
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %24
-;CHECK: [[check_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_40 {{%\w+}} %uint_1 %uint_2 %uint_0 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[check_result]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %12 %g_tColor
-;CHECK: {{%\w+}} = OpSampledImage %16 {{%\w+}} %22
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, SPV14AddToEntryPoint) {
- const std::string text = R"(
-OpCapability Shader
-OpExtension "SPV_EXT_descriptor_indexing"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %foo "foo" %gid %image_var %sampler_var
-;CHECK: OpEntryPoint Fragment {{%\w+}} "foo" {{%\w+}} {{%\w+}} {{%\w+}} %gl_FragCoord
-OpExecutionMode %foo OriginUpperLeft
-OpDecorate %image_var DescriptorSet 4
-OpDecorate %image_var Binding 1
-OpDecorate %sampler_var DescriptorSet 4
-OpDecorate %sampler_var Binding 2
-OpDecorate %gid DescriptorSet 0
-OpDecorate %gid Binding 2
-OpDecorate %struct Block
-OpMemberDecorate %struct 0 Offset 0
-%void = OpTypeVoid
-%int = OpTypeInt 32 0
-%int_0 = OpConstant %int 0
-%v3int = OpTypeVector %int 3
-%float = OpTypeFloat 32
-%v3float = OpTypeVector %float 3
-%v4float = OpTypeVector %float 4
-%struct = OpTypeStruct %v3int
-%ptr_ssbo_struct = OpTypePointer StorageBuffer %struct
-%ptr_ssbo_v3int = OpTypePointer StorageBuffer %v3int
-%gid = OpVariable %ptr_ssbo_struct StorageBuffer
-%image = OpTypeImage %float 3D 0 0 0 1 Unknown
-%ptr_uc_image = OpTypePointer UniformConstant %image
-%sampler = OpTypeSampler
-%ptr_uc_sampler = OpTypePointer UniformConstant %sampler
-%image_var = OpVariable %ptr_uc_image UniformConstant
-%sampler_var = OpVariable %ptr_uc_sampler UniformConstant
-%sampled = OpTypeSampledImage %image
-%void_fn = OpTypeFunction %void
-%foo = OpFunction %void None %void_fn
-%entry = OpLabel
-%ld_image = OpLoad %image %image_var
-%ld_sampler = OpLoad %sampler %sampler_var
-%gep = OpAccessChain %ptr_ssbo_v3int %gid %int_0
-%ld_gid = OpLoad %v3int %gep
-%convert = OpConvertUToF %v3float %ld_gid
-%sampled_image = OpSampledImage %sampled %ld_image %ld_sampler
-%sample = OpImageSampleImplicitLod %v4float %sampled_image %convert
-OpReturn
-OpFunctionEnd
-)";
-
- SetTargetEnv(SPV_ENV_VULKAN_1_1_SPIRV_1_4);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, SPV14AddToEntryPoints) {
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %foo "foo" %gid %image_var %sampler_var
-;CHECK: OpEntryPoint Fragment {{%\w+}} "foo" {{%\w+}} {{%\w+}} {{%\w+}} %gl_FragCoord
-OpEntryPoint Fragment %foo "bar" %gid %image_var %sampler_var
-;CHECK: OpEntryPoint Fragment {{%\w+}} "bar" {{%\w+}} {{%\w+}} {{%\w+}} %gl_FragCoord
-OpExecutionMode %foo OriginUpperLeft
-OpDecorate %image_var DescriptorSet 3
-OpDecorate %image_var Binding 2
-OpDecorate %sampler_var DescriptorSet 3
-OpDecorate %sampler_var Binding 3
-OpDecorate %gid DescriptorSet 3
-OpDecorate %gid Binding 4
-OpDecorate %struct Block
-OpMemberDecorate %struct 0 Offset 0
-%void = OpTypeVoid
-%int = OpTypeInt 32 0
-%int_0 = OpConstant %int 0
-%v3int = OpTypeVector %int 3
-%float = OpTypeFloat 32
-%v3float = OpTypeVector %float 3
-%v4float = OpTypeVector %float 4
-%struct = OpTypeStruct %v3int
-%ptr_ssbo_struct = OpTypePointer StorageBuffer %struct
-%ptr_ssbo_v3int = OpTypePointer StorageBuffer %v3int
-%gid = OpVariable %ptr_ssbo_struct StorageBuffer
-%image = OpTypeImage %float 3D 0 0 0 1 Unknown
-%ptr_uc_image = OpTypePointer UniformConstant %image
-%sampler = OpTypeSampler
-%ptr_uc_sampler = OpTypePointer UniformConstant %sampler
-%image_var = OpVariable %ptr_uc_image UniformConstant
-%sampler_var = OpVariable %ptr_uc_sampler UniformConstant
-%sampled = OpTypeSampledImage %image
-%void_fn = OpTypeFunction %void
-%foo = OpFunction %void None %void_fn
-%entry = OpLabel
-%ld_image = OpLoad %image %image_var
-%ld_sampler = OpLoad %sampler %sampler_var
-%gep = OpAccessChain %ptr_ssbo_v3int %gid %int_0
-%ld_gid = OpLoad %v3int %gep
-%convert = OpConvertUToF %v3float %ld_gid
-%sampled_image = OpSampledImage %sampled %ld_image %ld_sampler
-%sample = OpImageSampleImplicitLod %v4float %sampled_image %convert
-OpReturn
-OpFunctionEnd
-)";
-
- SetTargetEnv(SPV_ENV_VULKAN_1_1_SPIRV_1_4);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsAndInitLoadUnsizedUBOArray) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location=0) in nonuniformEXT flat int nu_ii;
- // layout(location=0) out float b;
- //
- // layout(set = 6, binding=3) uniform uname { float a; } uniformBuffer[];
- //
- // void main()
- // {
- // b = uniformBuffer[nu_ii].a;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability ShaderNonUniform
-OpCapability RuntimeDescriptorArray
-OpCapability UniformBufferArrayNonUniformIndexing
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %b %nu_ii
-;CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %b "b"
-OpName %uname "uname"
-OpMemberName %uname 0 "a"
-OpName %uniformBuffer "uniformBuffer"
-OpName %nu_ii "nu_ii"
-OpDecorate %b Location 0
-OpMemberDecorate %uname 0 Offset 0
-OpDecorate %uname Block
-OpDecorate %uniformBuffer DescriptorSet 6
-OpDecorate %uniformBuffer Binding 3
-OpDecorate %nu_ii Flat
-OpDecorate %nu_ii Location 0
-OpDecorate %nu_ii NonUniform
-OpDecorate %16 NonUniform
-OpDecorate %20 NonUniform
-;CHECK: OpDecorate {{%\w+}} NonUniform
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-;CHECK: OpDecorate {{%\w+}} NonUniform
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%b = OpVariable %_ptr_Output_float Output
-%uname = OpTypeStruct %float
-%_runtimearr_uname = OpTypeRuntimeArray %uname
-%_ptr_Uniform__runtimearr_uname = OpTypePointer Uniform %_runtimearr_uname
-%uniformBuffer = OpVariable %_ptr_Uniform__runtimearr_uname Uniform
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%nu_ii = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %v4float = OpTypeVector %float 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%16 = OpLoad %int %nu_ii
-%19 = OpAccessChain %_ptr_Uniform_float %uniformBuffer %16 %int_0
-%20 = OpLoad %float %19
-OpStore %b %20
-;CHECK-NOT: %20 = OpLoad %float %19
-;CHECK-NOT: OpStore %b %20
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %7
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_6 %uint_3 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %b [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsAndInitLoadUnsizedSSBOArrayDeprecated) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location=0) in nonuniformEXT flat int nu_ii;
- // layout(location=0) out float b;
- //
- // layout(set = 7, binding=3) buffer bname { float b; } storageBuffer[];
- //
- // void main()
- // {
- // b = storageBuffer[nu_ii].b;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability ShaderNonUniform
-OpCapability RuntimeDescriptorArray
-OpCapability StorageBufferArrayNonUniformIndexing
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %b %nu_ii
-;CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %b "b"
-OpName %bname "bname"
-OpMemberName %bname 0 "a"
-OpName %storageBuffer "storageBuffer"
-OpName %nu_ii "nu_ii"
-OpDecorate %b Location 0
-OpMemberDecorate %bname 0 Offset 0
-OpDecorate %bname Block
-OpDecorate %storageBuffer DescriptorSet 7
-OpDecorate %storageBuffer Binding 3
-OpDecorate %nu_ii Flat
-OpDecorate %nu_ii Location 0
-OpDecorate %nu_ii NonUniform
-OpDecorate %16 NonUniform
-OpDecorate %20 NonUniform
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%b = OpVariable %_ptr_Output_float Output
-%bname = OpTypeStruct %float
-%_runtimearr_bname = OpTypeRuntimeArray %bname
-%_ptr_StorageBuffer__runtimearr_bname = OpTypePointer StorageBuffer %_runtimearr_bname
-%storageBuffer = OpVariable %_ptr_StorageBuffer__runtimearr_bname StorageBuffer
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%nu_ii = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-;CHECK: %uint = OpTypeInt 32 0
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %v4float = OpTypeVector %float 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%16 = OpLoad %int %nu_ii
-%19 = OpAccessChain %_ptr_StorageBuffer_float %storageBuffer %16 %int_0
-%20 = OpLoad %float %19
-OpStore %b %20
-;CHECK-NOT: %20 = OpLoad %float %19
-;CHECK-NOT: OpStore %b %20
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %7
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_7 %uint_3 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %b [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsAndInitLoadUnsizedSSBOArray) {
- // Same as Deprecated but declaring as StorageBuffer Block
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability ShaderNonUniform
-OpCapability RuntimeDescriptorArray
-OpCapability StorageBufferArrayNonUniformIndexing
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %b %nu_ii
-;CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %b "b"
-OpName %bname "bname"
-OpMemberName %bname 0 "a"
-OpName %storageBuffer "storageBuffer"
-OpName %nu_ii "nu_ii"
-OpDecorate %b Location 0
-OpMemberDecorate %bname 0 Offset 0
-OpDecorate %bname Block
-OpDecorate %storageBuffer DescriptorSet 0
-OpDecorate %storageBuffer Binding 3
-OpDecorate %nu_ii Flat
-OpDecorate %nu_ii Location 0
-OpDecorate %nu_ii NonUniform
-OpDecorate %16 NonUniform
-OpDecorate %20 NonUniform
-;CHECK: OpDecorate {{%\w+}} NonUniform
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-;CHECK: OpDecorate {{%\w+}} NonUniform
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%b = OpVariable %_ptr_Output_float Output
-%bname = OpTypeStruct %float
-%_runtimearr_bname = OpTypeRuntimeArray %bname
-%_ptr_StorageBuffer__runtimearr_bname = OpTypePointer StorageBuffer %_runtimearr_bname
-%storageBuffer = OpVariable %_ptr_StorageBuffer__runtimearr_bname StorageBuffer
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%nu_ii = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %v4float = OpTypeVector %float 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%16 = OpLoad %int %nu_ii
-%19 = OpAccessChain %_ptr_StorageBuffer_float %storageBuffer %16 %int_0
-%20 = OpLoad %float %19
-OpStore %b %20
-;CHECK-NOT: %20 = OpLoad %float %19
-;CHECK-NOT: OpStore %b %20
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %7
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_0 %uint_3 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %b {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstInitLoadUBOScalar) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location=0) out float b;
- // layout(set=7, binding=3) uniform uname { float a; } uniformBuffer;
- //
- // void main()
- // {
- // b = uniformBuffer.a;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %b
-;CHECK: OpEntryPoint Fragment %main "main" %b %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %b "b"
-OpName %uname "uname"
-OpMemberName %uname 0 "a"
-OpName %uniformBuffer "uniformBuffer"
-OpDecorate %b Location 0
-OpMemberDecorate %uname 0 Offset 0
-OpDecorate %uname Block
-OpDecorate %uniformBuffer DescriptorSet 7
-OpDecorate %uniformBuffer Binding 3
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%b = OpVariable %_ptr_Output_float Output
-%uname = OpTypeStruct %float
-%_ptr_Uniform_uname = OpTypePointer Uniform %uname
-%uniformBuffer = OpVariable %_ptr_Uniform_uname Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %int = OpTypeInt 32 1
-;CHECK: %_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %uint = OpTypeInt 32 0
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %v4float = OpTypeVector %float 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%15 = OpAccessChain %_ptr_Uniform_float %uniformBuffer %int_0
-%16 = OpLoad %float %15
-OpStore %b %16
-;CHECK-NOT: %16 = OpLoad %float %15
-;CHECK-NOT: OpStore %b %16
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[check_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_33 {{%\w+}} %uint_7 %uint_3 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[check_result]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %float %15
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %b [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsInitStoreUnsizedSSBOArray) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location=0) in nonuniformEXT flat int nu_ii;
- // layout(location=1) in float b;
- //
- // layout(set=5, binding=4) buffer bname { float b; } storageBuffer[];
- //
- // void main()
- // {
- // storageBuffer[nu_ii].b = b;
- // }
-
- // clang-format off
- const std::string defs = R"(OpCapability Shader
-OpCapability ShaderNonUniform
-OpCapability RuntimeDescriptorArray
-OpCapability StorageBufferArrayNonUniformIndexing
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %nu_ii %b
-;CHECK: OpEntryPoint Fragment %main "main" %nu_ii %b %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %bname "bname"
-OpMemberName %bname 0 "b"
-OpName %storageBuffer "storageBuffer"
-OpName %nu_ii "nu_ii"
-OpName %b "b"
-OpMemberDecorate %bname 0 Offset 0
-OpDecorate %bname BufferBlock
-OpDecorate %storageBuffer DescriptorSet 5
-OpDecorate %storageBuffer Binding 4
-OpDecorate %nu_ii Flat
-OpDecorate %nu_ii Location 0
-OpDecorate %nu_ii NonUniform
-OpDecorate %14 NonUniform
-OpDecorate %b Location 1
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%bname = OpTypeStruct %float
-%_runtimearr_bname = OpTypeRuntimeArray %bname
-%_ptr_Uniform__runtimearr_bname = OpTypePointer Uniform %_runtimearr_bname
-%storageBuffer = OpVariable %_ptr_Uniform__runtimearr_bname Uniform
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%nu_ii = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%_ptr_Input_float = OpTypePointer Input %float
-%b = OpVariable %_ptr_Input_float Input
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%14 = OpLoad %int %nu_ii
-%18 = OpLoad %float %b
-%20 = OpAccessChain %_ptr_Uniform_float %storageBuffer %14 %int_0
-OpStore %20 %18
-;CHECK-NOT: OpStore %20 %18
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %7
-;CHECK: [[check_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_5 %uint_4 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[check_result]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %20 %19
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsInitLoadSizedUBOArray) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location=0) in nonuniformEXT flat int nu_ii;
- // layout(location=0) out float b;
- //
- // layout(set=1, binding=3) uniform uname { float a; } uniformBuffer[128];
- //
- // void main()
- // {
- // b = uniformBuffer[nu_ii].a;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability ShaderNonUniform
-OpCapability UniformBufferArrayNonUniformIndexing
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %b %nu_ii
-;CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %b "b"
-OpName %uname "uname"
-OpMemberName %uname 0 "a"
-OpName %uniformBuffer "uniformBuffer"
-OpName %nu_ii "nu_ii"
-OpDecorate %b Location 0
-OpMemberDecorate %uname 0 Offset 0
-OpDecorate %uname Block
-OpDecorate %uniformBuffer DescriptorSet 1
-OpDecorate %uniformBuffer Binding 3
-OpDecorate %nu_ii Flat
-OpDecorate %nu_ii Location 0
-OpDecorate %nu_ii NonUniform
-OpDecorate %18 NonUniform
-OpDecorate %22 NonUniform
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-;CHECK: OpDecorate [[load_result:%\w+]] NonUniform
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%b = OpVariable %_ptr_Output_float Output
-%uname = OpTypeStruct %float
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_uname_uint_128 = OpTypeArray %uname %uint_128
-%_ptr_Uniform__arr_uname_uint_128 = OpTypePointer Uniform %_arr_uname_uint_128
-%uniformBuffer = OpVariable %_ptr_Uniform__arr_uname_uint_128 Uniform
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%nu_ii = OpVariable %_ptr_Input_int Input
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%18 = OpLoad %int %nu_ii
-%21 = OpAccessChain %_ptr_Uniform_float %uniformBuffer %18 %int_0
-%22 = OpLoad %float %21
-OpStore %b %22
-;CHECK-NOT: %22 = OpLoad %float %21
-;CHECK-NOT: OpStore %b %22
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %7
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_47 {{%\w+}} %uint_1 %uint_3 {{%\w+}} {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %float %22
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %b {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsComputeShaderInitLoadVariableSizedSampledImagesArray) {
- // #version 450
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout (local_size_x = 1, local_size_y = 1) in;
- //
- // layout(set = 2, binding = 0, std140) buffer Input {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 2, binding = 1, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability Shader
-OpCapability RuntimeDescriptorArray
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint GLCompute %main "main"
-;CHECK: OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
-OpExecutionMode %main LocalSize 1 1 1
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %Input "Input"
-OpMemberName %Input 0 "index"
-OpMemberName %Input 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %Input 0 Offset 0
-OpMemberDecorate %Input 1 Offset 4
-OpDecorate %Input BufferBlock
-OpDecorate %sbo DescriptorSet 2
-OpDecorate %sbo Binding 0
-OpDecorate %images DescriptorSet 2
-OpDecorate %images Binding 1
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%Input = OpTypeStruct %uint %float
-%_ptr_Uniform_Input = OpTypePointer Uniform %Input
-%sbo = OpVariable %_ptr_Uniform_Input Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: %v3uint = OpTypeVector %uint 3
-;CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-;CHECK: %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_48 {{%\w+}} %uint_2 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %uint {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_UniformConstant_13 %images {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_51 {{%\w+}} %uint_2 %uint_1 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_54 {{%\w+}} %uint_2 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsRayGenerationInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 3, binding = 1, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 3, binding = 5, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint RayGenerationNV %main "main"
-;CHECK: OpEntryPoint RayGenerationNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 3
-OpDecorate %sbo Binding 1
-OpDecorate %images DescriptorSet 3
-OpDecorate %images Binding 5
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5313 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_3 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_UniformConstant_13 %images {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5313 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_3 %uint_5 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5313 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_3 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore {{%\w+}} {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsIntersectionInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 5, binding = 1, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 5, binding = 3, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint IntersectionNV %main "main"
-;CHECK: OpEntryPoint IntersectionNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 5
-OpDecorate %sbo Binding 1
-OpDecorate %images DescriptorSet 5
-OpDecorate %images Binding 3
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[launch_id]] = OpVariable %_ptr_Input_v3uint Input
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5314 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_5 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_UniformConstant_13 %images {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5314 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_5 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: {{%\w+}} = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5314 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_5 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsAnyHitInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 2, binding = 1, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 2, binding = 3, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint AnyHitNV %main "main"
-;CHECK: OpEntryPoint AnyHitNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 2
-OpDecorate %sbo Binding 1
-OpDecorate %images DescriptorSet 2
-OpDecorate %images Binding 3
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[launch_id]] = OpVariable %_ptr_Input_v3uint Input
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: %20 = OpLoad %uint %19
-;CHECK-NOT: %22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-;CHECK-NOT: %23 = OpLoad %13 %22
-;CHECK-NOT: %27 = OpImageRead %v4float %23 %25
-;CHECK-NOT: %29 = OpCompositeExtract %float %27 0
-;CHECK-NOT: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5315 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_2 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images [[phi_result]]
-;CHECK: %28 = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5315 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_2 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %30 = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5315 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_2 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsClosestHitInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 1, binding = 2, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 1, binding = 3, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint ClosestHitNV %main "main"
-;CHECK: OpEntryPoint ClosestHitNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 1
-OpDecorate %sbo Binding 2
-OpDecorate %images DescriptorSet 1
-OpDecorate %images Binding 3
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[launch_id]] = OpVariable %_ptr_Input_v3uint Input
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: %20 = OpLoad %uint %19
-;CHECK-NOT: %22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-;CHECK-NOT: %23 = OpLoad %13 %22
-;CHECK-NOT: %27 = OpImageRead %v4float %23 %25
-;CHECK-NOT: %29 = OpCompositeExtract %float %27 0
-;CHECK-NOT: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5316 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images [[phi_result]]
-;CHECK: %28 = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5316 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_1 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %30 = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5316 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsMissInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 1, binding = 2, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 1, binding = 3, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint MissNV %main "main"
-;CHECK: OpEntryPoint MissNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 1
-OpDecorate %sbo Binding 2
-OpDecorate %images DescriptorSet 1
-OpDecorate %images Binding 3
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[launch_id]] = OpVariable %_ptr_Input_v3uint Input
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: %20 = OpLoad %uint %19
-;CHECK-NOT: %22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-;CHECK-NOT: %27 = OpImageRead %v4float %23 %25
-;CHECK-NOT: %29 = OpCompositeExtract %float %27 0
-;CHECK-NOT OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5317 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images [[phi_result]]
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5317 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_1 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %30 = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5317 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest,
- InstBoundsCallableInitLoadVariableSizedSampledImagesArray) {
- // #version 460
- // #extension GL_EXT_nonuniform_qualifier : require
- // #extension GL_NV_ray_tracing : require
- //
- // layout(set = 1, binding = 2, std140) buffer StorageBuffer {
- // uint index;
- // float red;
- // } sbo;
- //
- // layout(set = 1, binding = 3, rgba32f) readonly uniform image2D images[];
- //
- // void main()
- // {
- // sbo.red = imageLoad(images[sbo.index], ivec2(0, 0)).r;
- // }
-
- // clang-format off
- const std::string defs = R"(
-OpCapability RuntimeDescriptorArray
-OpCapability RayTracingNV
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-OpExtension "SPV_NV_ray_tracing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint CallableNV %main "main"
-;CHECK: OpEntryPoint CallableNV %main "main" [[launch_id:%\w+]]
-OpSource GLSL 460
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpSourceExtension "GL_NV_ray_tracing"
-OpName %main "main"
-OpName %StorageBuffer "StorageBuffer"
-OpMemberName %StorageBuffer 0 "index"
-OpMemberName %StorageBuffer 1 "red"
-OpName %sbo "sbo"
-OpName %images "images"
-OpMemberDecorate %StorageBuffer 0 Offset 0
-OpMemberDecorate %StorageBuffer 1 Offset 4
-OpDecorate %StorageBuffer BufferBlock
-OpDecorate %sbo DescriptorSet 1
-OpDecorate %sbo Binding 2
-OpDecorate %images DescriptorSet 1
-OpDecorate %images Binding 3
-OpDecorate %images NonWritable
-)" + kImportDeco + R"(
-;CHECK: OpDecorate [[launch_id]] BuiltIn LaunchIdNV
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%uint = OpTypeInt 32 0
-%float = OpTypeFloat 32
-%StorageBuffer = OpTypeStruct %uint %float
-%_ptr_Uniform_StorageBuffer = OpTypePointer Uniform %StorageBuffer
-%sbo = OpVariable %_ptr_Uniform_StorageBuffer Uniform
-%int = OpTypeInt 32 1
-%int_1 = OpConstant %int 1
-%13 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_runtimearr_13 = OpTypeRuntimeArray %13
-%_ptr_UniformConstant__runtimearr_13 = OpTypePointer UniformConstant %_runtimearr_13
-%images = OpVariable %_ptr_UniformConstant__runtimearr_13 UniformConstant
-%int_0 = OpConstant %int 0
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%v2int = OpTypeVector %int 2
-%25 = OpConstantComposite %v2int %int_0 %int_0
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-;CHECK: [[null_uint:%\w+]] = OpConstantNull %uint
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%19 = OpAccessChain %_ptr_Uniform_uint %sbo %int_0
-%20 = OpLoad %uint %19
-%22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-%23 = OpLoad %13 %22
-%27 = OpImageRead %v4float %23 %25
-%29 = OpCompositeExtract %float %27 0
-;CHECK-NOT: %20 = OpLoad %uint %19
-;CHECK-NOT: %22 = OpAccessChain %_ptr_UniformConstant_13 %images %20
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5318 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %uint {{%\w+}} {{%\w+}} [[null_uint]] {{%\w+}}
-;CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images {{%\w+}}
-;CHECK-NOT: %23 = OpLoad %13 %22
-;CHECK-NOT: %27 = OpImageRead %v4float %23 %25
-;CHECK-NOT: %29 = OpCompositeExtract %float %27 0
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5318 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_1 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %27
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %30 = OpCompositeExtract %float {{%\w+}} 0
-;CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-%31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-OpStore %31 %29
-;CHECK-NOT: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1
-;CHECK-NOT: OpStore %31 %29
-;CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5318 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_55 {{%\w+}} %uint_1 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %31 %30
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, InstBoundsInitSameBlockOpReplication) {
- // Test that same block ops like OpSampledImage are replicated properly
- // where needed.
- //
- // clang-format off
- //
- // #version 450 core
- // #extension GL_EXT_nonuniform_qualifier : enable
- //
- // layout(location = 0) in vec2 inTexcoord;
- // layout(location = 0) out vec4 outColor;
- //
- // layout(set = 1, binding = 0) uniform Uniforms {
- // vec2 var0;
- // } uniforms;
- //
- // layout(set = 1, binding = 1) uniform sampler uniformSampler;
- // layout(set = 1, binding = 2) uniform texture2D uniformTex;
- // layout(set = 1, binding = 3) uniform texture2D uniformTexArr[8];
- //
- // void main() {
- // int index = 0;
- // float x = texture(sampler2D(uniformTexArr[nonuniformEXT(index)], uniformSampler), inTexcoord.xy).x;
- // float y = texture(sampler2D(uniformTex, uniformSampler), inTexcoord.xy * uniforms.var0.xy).x;
- // outColor = vec4(x, y, 0.0, 0.0);
- // }
- //
-
- const std::string defs = R"(
-OpCapability Shader
-OpCapability ShaderNonUniformEXT
-OpCapability SampledImageArrayNonUniformIndexingEXT
-;CHECK: OpCapability Linkage
-OpExtension "SPV_EXT_descriptor_indexing"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %inTexcoord %outColor
-;CHECK: OpEntryPoint Fragment %main "main" %inTexcoord %outColor %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_nonuniform_qualifier"
-OpName %main "main"
-OpName %index "index"
-OpName %x "x"
-OpName %uniformTexArr "uniformTexArr"
-OpName %uniformSampler "uniformSampler"
-OpName %inTexcoord "inTexcoord"
-OpName %y "y"
-OpName %uniformTex "uniformTex"
-OpName %Uniforms "Uniforms"
-OpMemberName %Uniforms 0 "var0"
-OpName %uniforms "uniforms"
-OpName %outColor "outColor"
-OpDecorate %uniformTexArr DescriptorSet 1
-OpDecorate %uniformTexArr Binding 3
-OpDecorate %19 NonUniformEXT
-OpDecorate %22 NonUniformEXT
-OpDecorate %uniformSampler DescriptorSet 1
-OpDecorate %uniformSampler Binding 1
-OpDecorate %inTexcoord Location 0
-OpDecorate %uniformTex DescriptorSet 1
-OpDecorate %uniformTex Binding 2
-OpMemberDecorate %Uniforms 0 Offset 0
-OpDecorate %Uniforms Block
-OpDecorate %uniforms DescriptorSet 1
-OpDecorate %uniforms Binding 0
-OpDecorate %outColor Location 0
-;CHECK: OpDecorate {{%\w+}} NonUniform
-;CHECK: OpDecorate {{%\w+}} NonUniform
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-;CHECK: OpDecorate [[desc_state_result:%\w+]] NonUniform
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%int = OpTypeInt 32 1
-%_ptr_Function_int = OpTypePointer Function %int
-%int_0 = OpConstant %int 0
-%float = OpTypeFloat 32
-%_ptr_Function_float = OpTypePointer Function %float
-%13 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_8 = OpConstant %uint 8
-%_arr_13_uint_8 = OpTypeArray %13 %uint_8
-%_ptr_UniformConstant__arr_13_uint_8 = OpTypePointer UniformConstant %_arr_13_uint_8
-%uniformTexArr = OpVariable %_ptr_UniformConstant__arr_13_uint_8 UniformConstant
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-%23 = OpTypeSampler
-%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
-%uniformSampler = OpVariable %_ptr_UniformConstant_23 UniformConstant
-%27 = OpTypeSampledImage %13
-%v2float = OpTypeVector %float 2
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%inTexcoord = OpVariable %_ptr_Input_v2float Input
-%v4float = OpTypeVector %float 4
-%uint_0 = OpConstant %uint 0
-%uniformTex = OpVariable %_ptr_UniformConstant_13 UniformConstant
-%Uniforms = OpTypeStruct %v2float
-%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
-%uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%outColor = OpVariable %_ptr_Output_v4float Output
-%float_0 = OpConstant %float 0
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%index = OpVariable %_ptr_Function_int Function
-%x = OpVariable %_ptr_Function_float Function
-%y = OpVariable %_ptr_Function_float Function
-OpStore %index %int_0
-%19 = OpLoad %int %index
-%21 = OpAccessChain %_ptr_UniformConstant_13 %uniformTexArr %19
-%22 = OpLoad %13 %21
-%26 = OpLoad %23 %uniformSampler
-%28 = OpSampledImage %27 %22 %26
-%32 = OpLoad %v2float %inTexcoord
-%34 = OpImageSampleImplicitLod %v4float %28 %32
-%36 = OpCompositeExtract %float %34 0
-;CHECK-NOT: %34 = OpImageSampleImplicitLod %v4float %28 %32
-;CHECK-NOT: %36 = OpCompositeExtract %float %34 0
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpBitcast %uint %19
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_80 {{%\w+}} %uint_1 %uint_3 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %21
-;CHECK: {{%\w+}} = OpSampledImage %27 {{%\w+}} %26
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %32
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-OpStore %x %36
-%39 = OpLoad %13 %uniformTex
-%40 = OpLoad %23 %uniformSampler
-%41 = OpSampledImage %27 %39 %40
-%42 = OpLoad %v2float %inTexcoord
-%47 = OpAccessChain %_ptr_Uniform_v2float %uniforms %int_0
-%48 = OpLoad %v2float %47
-%49 = OpFMul %v2float %42 %48
-;CHECK-NOT: %48 = OpLoad %v2float %47
-;CHECK-NOT: %49 = OpFMul %v2float %42 %48
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_88 {{%\w+}} %uint_1 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %47
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-;CHECK: %49 = OpFMul %v2float %42 [[phi_result]]
-%50 = OpImageSampleImplicitLod %v4float %41 %49
-%51 = OpCompositeExtract %float %50 0
-OpStore %y %51
-;CHECK-NOT: %50 = OpImageSampleImplicitLod %v4float %41 %49
-;CHECK-NOT: %51 = OpCompositeExtract %float %50 0
-;CHECK: {{%\w+}} = OpSampledImage %27 %39 %40
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_90 {{%\w+}} %uint_1 %uint_2 %uint_0 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %13 %uniformTex
-;CHECK: {{%\w+}} = OpSampledImage %27 {{%\w+}} %40
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %49
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: %51 = OpCompositeExtract %float {{%\w+}} 0
-OpStore %y %51
-%54 = OpLoad %float %x
-%55 = OpLoad %float %y
-%57 = OpCompositeConstruct %v4float %54 %55 %float_0 %float_0
-OpStore %outColor %57
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(defs + kImportStub + main_func,
- true, 23u);
-}
-
-TEST_F(InstBindlessTest, MultipleUniformNonAggregateRefsNoDescInit) {
- // Check that uniform refs do not go out-of-bounds. All checks use same input
- // buffer read function call result at top of function for uniform buffer
- // length. Because descriptor indexing is not being checked, we can avoid one
- // buffer load.
- //
- // Texture2D g_tColor;
- // SamplerState g_sAniso;
- //
- // layout(push_constant) cbuffer PerViewPushConst_t { bool g_B; };
- //
- // cbuffer PerViewConstantBuffer_t {
- // float2 g_TexOff0;
- // float2 g_TexOff1;
- // };
- //
- // struct PS_INPUT {
- // float2 vTextureCoords : TEXCOORD2;
- // };
- //
- // struct PS_OUTPUT {
- // float4 vColor : SV_Target0;
- // };
- //
- // PS_OUTPUT MainPs(PS_INPUT i) {
- // PS_OUTPUT ps_output;
- // float2 off;
- // float2 vtc;
- // if (g_B)
- // off = g_TexOff0;
- // else
- // off = g_TexOff1;
- // vtc = i.vTextureCoords.xy + off;
- // ps_output.vColor = g_tColor.Sample(g_sAniso, vtc);
- // return ps_output;
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %PerViewPushConst_t "PerViewPushConst_t"
-OpMemberName %PerViewPushConst_t 0 "g_B"
-OpName %_ ""
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_TexOff0"
-OpMemberName %PerViewConstantBuffer_t 1 "g_TexOff1"
-OpName %__0 ""
-OpName %g_tColor "g_tColor"
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpMemberDecorate %PerViewPushConst_t 0 Offset 0
-OpDecorate %PerViewPushConst_t Block
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpMemberDecorate %PerViewConstantBuffer_t 1 Offset 8
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %__0 DescriptorSet 0
-OpDecorate %__0 Binding 1
-OpDecorate %g_tColor DescriptorSet 0
-OpDecorate %g_tColor Binding 0
-OpDecorate %g_sAniso DescriptorSet 0
-OpDecorate %g_sAniso Binding 2
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%uint = OpTypeInt 32 0
-%PerViewPushConst_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewPushConst_t = OpTypePointer PushConstant %PerViewPushConst_t
-%_ = OpVariable %_ptr_PushConstant_PerViewPushConst_t PushConstant
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%bool = OpTypeBool
-%uint_0 = OpConstant %uint 0
-%PerViewConstantBuffer_t = OpTypeStruct %v2float %v2float
-%_ptr_Uniform_PerViewConstantBuffer_t = OpTypePointer Uniform %PerViewConstantBuffer_t
-%__0 = OpVariable %_ptr_Uniform_PerViewConstantBuffer_t Uniform
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%int_1 = OpConstant %int 1
-%49 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_49 = OpTypePointer UniformConstant %49
-%g_tColor = OpVariable %_ptr_UniformConstant_49 UniformConstant
-%53 = OpTypeSampler
-%_ptr_UniformConstant_53 = OpTypePointer UniformConstant %53
-%g_sAniso = OpVariable %_ptr_UniformConstant_53 UniformConstant
-%57 = OpTypeSampledImage %49
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
- )" + kImportStub + R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%69 = OpLoad %v2float %i_vTextureCoords
-%82 = OpAccessChain %_ptr_PushConstant_uint %_ %int_0
-%83 = OpLoad %uint %82
-%84 = OpINotEqual %bool %83 %uint_0
-OpSelectionMerge %91 None
-OpBranchConditional %84 %85 %88
-%85 = OpLabel
-%86 = OpAccessChain %_ptr_Uniform_v2float %__0 %int_0
-%87 = OpLoad %v2float %86
-;CHECK-NOT: %87 = OpLoad %v2float %86
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 %uint_7
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[desc_state_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_72 {{%\w+}} %uint_0 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[desc_state_result]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %86
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
- ;CHECK: {{%\w+}} = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-OpBranch %91
-%88 = OpLabel
-%89 = OpAccessChain %_ptr_Uniform_v2float %__0 %int_1
-%90 = OpLoad %v2float %89
-;CHECK-NOT: %90 = OpLoad %v2float %89
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_8 %uint_7
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_76 {{%\w+}} %uint_0 %uint_1 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %89
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-OpBranch %91
-%91 = OpLabel
-%115 = OpPhi %v2float %87 %85 %90 %88
-;CHECK-NOT: %115 = OpPhi %v2float %87 %85 %90 %88
-;CHECK: %115 = OpPhi %v2float {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-%95 = OpFAdd %v2float %69 %115
-%96 = OpLoad %49 %g_tColor
-%97 = OpLoad %53 %g_sAniso
-%98 = OpSampledImage %57 %96 %97
-%100 = OpImageSampleImplicitLod %v4float %98 %95
-OpStore %_entryPointOutput_vColor %100
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformArrayRefNoDescInit) {
- // Check that uniform array ref does not go out-of-bounds.
- //
- // Texture2D g_tColor;
- // SamplerState g_sAniso;
- //
- // layout(push_constant) cbuffer PerViewPushConst_t { uint g_c; };
- //
- // struct PerBatchEnvMapConstantBuffer_t {
- // float4x3 g_matEnvMapWorldToLocal;
- // float4 g_vEnvironmentMapBoxMins;
- // float2 g_TexOff;
- // };
- //
- // cbuffer _BindlessFastEnvMapCB_PS_t {
- // PerBatchEnvMapConstantBuffer_t g_envMapConstants[128];
- // };
- //
- // struct PS_INPUT {
- // float2 vTextureCoords : TEXCOORD2;
- // };
- //
- // struct PS_OUTPUT {
- // float4 vColor : SV_Target0;
- // };
- //
- // PS_OUTPUT MainPs(PS_INPUT i) {
- // PS_OUTPUT ps_output;
- // float2 off;
- // float2 vtc;
- // off = g_envMapConstants[g_c].g_TexOff;
- // vtc = i.vTextureCoords.xy + off;
- // ps_output.vColor = g_tColor.Sample(g_sAniso, vtc);
- // return ps_output;
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %PerBatchEnvMapConstantBuffer_t "PerBatchEnvMapConstantBuffer_t"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 0 "g_matEnvMapWorldToLocal"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 1 "g_vEnvironmentMapBoxMins"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 2 "g_TexOff"
-OpName %_BindlessFastEnvMapCB_PS_t "_BindlessFastEnvMapCB_PS_t"
-OpMemberName %_BindlessFastEnvMapCB_PS_t 0 "g_envMapConstants"
-OpName %_ ""
-OpName %PerViewPushConst_t "PerViewPushConst_t"
-OpMemberName %PerViewPushConst_t 0 "g_c"
-OpName %__0 ""
-OpName %g_tColor "g_tColor"
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 RowMajor
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 Offset 0
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 MatrixStride 16
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 1 Offset 48
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 2 Offset 64
-OpDecorate %_arr_PerBatchEnvMapConstantBuffer_t_uint_128 ArrayStride 80
-OpMemberDecorate %_BindlessFastEnvMapCB_PS_t 0 Offset 0
-OpDecorate %_BindlessFastEnvMapCB_PS_t Block
-OpDecorate %_ DescriptorSet 0
-OpDecorate %_ Binding 2
-OpMemberDecorate %PerViewPushConst_t 0 Offset 0
-OpDecorate %PerViewPushConst_t Block
-OpDecorate %g_tColor DescriptorSet 0
-OpDecorate %g_tColor Binding 0
-OpDecorate %g_sAniso DescriptorSet 0
-OpDecorate %g_sAniso Binding 1
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%v3float = OpTypeVector %float 3
-%mat4v3float = OpTypeMatrix %v3float 4
-%PerBatchEnvMapConstantBuffer_t = OpTypeStruct %mat4v3float %v4float %v2float
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_PerBatchEnvMapConstantBuffer_t_uint_128 = OpTypeArray %PerBatchEnvMapConstantBuffer_t %uint_128
-%_BindlessFastEnvMapCB_PS_t = OpTypeStruct %_arr_PerBatchEnvMapConstantBuffer_t_uint_128
-%_ptr_Uniform__BindlessFastEnvMapCB_PS_t = OpTypePointer Uniform %_BindlessFastEnvMapCB_PS_t
-%_ = OpVariable %_ptr_Uniform__BindlessFastEnvMapCB_PS_t Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%PerViewPushConst_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewPushConst_t = OpTypePointer PushConstant %PerViewPushConst_t
-%__0 = OpVariable %_ptr_PushConstant_PerViewPushConst_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%int_2 = OpConstant %int 2
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%46 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_46 = OpTypePointer UniformConstant %46
-%g_tColor = OpVariable %_ptr_UniformConstant_46 UniformConstant
-%50 = OpTypeSampler
-%_ptr_UniformConstant_50 = OpTypePointer UniformConstant %50
-%g_sAniso = OpVariable %_ptr_UniformConstant_50 UniformConstant
-%54 = OpTypeSampledImage %46
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
-)" + kImportStub + R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%66 = OpLoad %v2float %i_vTextureCoords
-%79 = OpAccessChain %_ptr_PushConstant_uint %__0 %int_0
-%80 = OpLoad %uint %79
-%81 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 %80 %int_2
-%82 = OpLoad %v2float %81
-;CHECK-NOT: %82 = OpLoad %v2float %81
-;CHECK: {{%\w+}} = OpIMul %uint %uint_80 %80
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_64
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_7
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_79 {{%\w+}} %uint_0 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %81
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-%86 = OpFAdd %v2float %66 %82
-;CHECK-NOT: %86 = OpFAdd %v2float %66 %82
-;CHECK: %86 = OpFAdd %v2float %66 {{%\w+}}
-%87 = OpLoad %46 %g_tColor
-%88 = OpLoad %50 %g_sAniso
-%89 = OpSampledImage %54 %87 %88
-%91 = OpImageSampleImplicitLod %v4float %89 %86
-OpStore %_entryPointOutput_vColor %91
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformArrayRefWithDescInit) {
- // The buffer-oob and desc-init checks should use the same debug
- // output buffer write function.
- //
- // Same source as UniformArrayRefNoDescInit
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %PerBatchEnvMapConstantBuffer_t "PerBatchEnvMapConstantBuffer_t"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 0 "g_matEnvMapWorldToLocal"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 1 "g_vEnvironmentMapBoxMins"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 2 "g_TexOff"
-OpName %_BindlessFastEnvMapCB_PS_t "_BindlessFastEnvMapCB_PS_t"
-OpMemberName %_BindlessFastEnvMapCB_PS_t 0 "g_envMapConstants"
-OpName %_ ""
-OpName %PerViewPushConst_t "PerViewPushConst_t"
-OpMemberName %PerViewPushConst_t 0 "g_c"
-OpName %__0 ""
-OpName %g_tColor "g_tColor"
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 RowMajor
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 Offset 0
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 MatrixStride 16
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 1 Offset 48
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 2 Offset 64
-OpDecorate %_arr_PerBatchEnvMapConstantBuffer_t_uint_128 ArrayStride 80
-OpMemberDecorate %_BindlessFastEnvMapCB_PS_t 0 Offset 0
-OpDecorate %_BindlessFastEnvMapCB_PS_t Block
-OpDecorate %_ DescriptorSet 0
-OpDecorate %_ Binding 2
-OpMemberDecorate %PerViewPushConst_t 0 Offset 0
-OpDecorate %PerViewPushConst_t Block
-OpDecorate %g_tColor DescriptorSet 0
-OpDecorate %g_tColor Binding 0
-OpDecorate %g_sAniso DescriptorSet 0
-OpDecorate %g_sAniso Binding 1
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%v3float = OpTypeVector %float 3
-%mat4v3float = OpTypeMatrix %v3float 4
-%PerBatchEnvMapConstantBuffer_t = OpTypeStruct %mat4v3float %v4float %v2float
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_PerBatchEnvMapConstantBuffer_t_uint_128 = OpTypeArray %PerBatchEnvMapConstantBuffer_t %uint_128
-%_BindlessFastEnvMapCB_PS_t = OpTypeStruct %_arr_PerBatchEnvMapConstantBuffer_t_uint_128
-%_ptr_Uniform__BindlessFastEnvMapCB_PS_t = OpTypePointer Uniform %_BindlessFastEnvMapCB_PS_t
-%_ = OpVariable %_ptr_Uniform__BindlessFastEnvMapCB_PS_t Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%PerViewPushConst_t = OpTypeStruct %uint
-%_ptr_PushConstant_PerViewPushConst_t = OpTypePointer PushConstant %PerViewPushConst_t
-%__0 = OpVariable %_ptr_PushConstant_PerViewPushConst_t PushConstant
-%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
-%int_2 = OpConstant %int 2
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%46 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_46 = OpTypePointer UniformConstant %46
-%g_tColor = OpVariable %_ptr_UniformConstant_46 UniformConstant
-%50 = OpTypeSampler
-%_ptr_UniformConstant_50 = OpTypePointer UniformConstant %50
-%g_sAniso = OpVariable %_ptr_UniformConstant_50 UniformConstant
-%54 = OpTypeSampledImage %46
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %v4uint = OpTypeVector %uint 4
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)" + kImportStub + R"(
-%MainPs = OpFunction %void None %3
-%5 = OpLabel
-%66 = OpLoad %v2float %i_vTextureCoords
-%79 = OpAccessChain %_ptr_PushConstant_uint %__0 %int_0
-%80 = OpLoad %uint %79
-%81 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 %80 %int_2
-%82 = OpLoad %v2float %81
-%86 = OpFAdd %v2float %66 %82
-;CHECK-NOT: %82 = OpLoad %v2float %81
-;CHECK-NOT: %86 = OpFAdd %v2float %66 %82
-;CHECK: {{%\w+}} = OpIMul %uint %uint_80 %80
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_64
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_7
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_79 {{%\w+}} %uint_0 %uint_2 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %81
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-;CHECK: %86 = OpFAdd %v2float %66 {{%\w+}}
-%87 = OpLoad %46 %g_tColor
-%88 = OpLoad %50 %g_sAniso
-%89 = OpSampledImage %54 %87 %88
-%91 = OpImageSampleImplicitLod %v4float %89 %86
-OpStore %_entryPointOutput_vColor %91
-;CHECK-NOT: %91 = OpImageSampleImplicitLod %v4float %89 %86
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %91
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_84 {{%\w+}} %uint_0 %uint_0 %uint_0 %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %46 %g_tColor
-;CHECK: {{%\w+}} = OpSampledImage %54 {{%\w+}} %88
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %86
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor {{%\w+}}
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, Descriptor16BitIdxRef) {
- // Check that descriptor indexed with 16bit index is inbounds and
- // initialized
- //
- // Use Simple source with min16uint g_nDataIdx
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability Int16
-OpCapability StoragePushConstant16
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %g_tColor %_ %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %g_tColor %_ %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %g_tColor "g_tColor"
-OpName %PerViewConstantBuffer_t "PerViewConstantBuffer_t"
-OpMemberName %PerViewConstantBuffer_t 0 "g_nDataIdx"
-OpName %_ ""
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpDecorate %g_tColor DescriptorSet 1
-OpDecorate %g_tColor Binding 2
-OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0
-OpDecorate %PerViewConstantBuffer_t Block
-OpDecorate %g_sAniso DescriptorSet 1
-OpDecorate %g_sAniso Binding 2
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%10 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_16_uint_128 = OpTypeArray %16 %uint_128
-%_ptr_UniformConstant__arr_16_uint_128 = OpTypePointer UniformConstant %_arr_16_uint_128
-%g_tColor = OpVariable %_ptr_UniformConstant__arr_16_uint_128 UniformConstant
-%ushort = OpTypeInt 16 0
-%PerViewConstantBuffer_t = OpTypeStruct %ushort
-%_ptr_PushConstant_PerViewConstantBuffer_t = OpTypePointer PushConstant %PerViewConstantBuffer_t
-%_ = OpVariable %_ptr_PushConstant_PerViewConstantBuffer_t PushConstant
-%_ptr_PushConstant_ushort = OpTypePointer PushConstant %ushort
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-%25 = OpTypeSampler
-%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
-%g_sAniso = OpVariable %_ptr_UniformConstant_25 UniformConstant
-%27 = OpTypeSampledImage %16
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)" + kImportStub + R"(
-%MainPs = OpFunction %void None %10
-%30 = OpLabel
-;CHECK: OpBranch %39
-;CHECK: %39 = OpLabel
-%31 = OpLoad %v2float %i_vTextureCoords
-%32 = OpAccessChain %_ptr_PushConstant_ushort %_ %int_0
-%33 = OpLoad %ushort %32
-%34 = OpAccessChain %_ptr_UniformConstant_16 %g_tColor %33
-%35 = OpLoad %16 %34
-%36 = OpLoad %25 %g_sAniso
-%37 = OpSampledImage %27 %35 %36
-%38 = OpImageSampleImplicitLod %v4float %37 %31
-OpStore %_entryPointOutput_vColor %38
-;CHECK-NOT: %38 = OpImageSampleImplicitLod %v4float %37 %31
-;CHECK-NOT: OpStore %_entryPointOutput_vColor %38
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpUConvert %uint %33
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_61 {{%\w+}} %uint_1 %uint_2 {{%\w+}} %uint_0
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %16 %34
-;CHECK: {{%\w+}} = OpSampledImage %27 {{%\w+}} %36
-;CHECK: {{%\w+}} = OpImageSampleImplicitLod %v4float {{%\w+}} %31
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %_entryPointOutput_vColor [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformArray16bitIdxRef) {
- // Check that uniform array ref with 16bit index does not go out-of-bounds.
- //
- // Texture2D g_tColor;
- // SamplerState g_sAniso;
- //
- // layout(push_constant) cbuffer PerViewPushConst_t { min16uint g_c; };
- //
- // struct PerBatchEnvMapConstantBuffer_t {
- // float4x3 g_matEnvMapWorldToLocal;
- // float4 g_vEnvironmentMapBoxMins;
- // float2 g_TexOff;
- // };
- //
- // cbuffer _BindlessFastEnvMapCB_PS_t {
- // PerBatchEnvMapConstantBuffer_t g_envMapConstants[128];
- // };
- //
- // struct PS_INPUT {
- // float2 vTextureCoords : TEXCOORD2;
- // };
- //
- // struct PS_OUTPUT {
- // float4 vColor : SV_Target0;
- // };
- //
- // PS_OUTPUT MainPs(PS_INPUT i) {
- // PS_OUTPUT ps_output;
- // float2 off;
- // float2 vtc;
- // off = g_envMapConstants[g_c].g_TexOff;
- // vtc = i.vTextureCoords.xy + off;
- // ps_output.vColor = g_tColor.Sample(g_sAniso, vtc);
- // return ps_output;
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability Int16
-OpCapability StoragePushConstant16
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor
-;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords %_entryPointOutput_vColor %gl_FragCoord
-OpExecutionMode %MainPs OriginUpperLeft
-OpSource HLSL 500
-OpName %MainPs "MainPs"
-OpName %PerBatchEnvMapConstantBuffer_t "PerBatchEnvMapConstantBuffer_t"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 0 "g_matEnvMapWorldToLocal"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 1 "g_vEnvironmentMapBoxMins"
-OpMemberName %PerBatchEnvMapConstantBuffer_t 2 "g_TexOff"
-OpName %_BindlessFastEnvMapCB_PS_t "_BindlessFastEnvMapCB_PS_t"
-OpMemberName %_BindlessFastEnvMapCB_PS_t 0 "g_envMapConstants"
-OpName %_ ""
-OpName %PerViewPushConst_t "PerViewPushConst_t"
-OpMemberName %PerViewPushConst_t 0 "g_c"
-OpName %__0 ""
-OpName %g_tColor "g_tColor"
-OpName %g_sAniso "g_sAniso"
-OpName %i_vTextureCoords "i.vTextureCoords"
-OpName %_entryPointOutput_vColor "@entryPointOutput.vColor"
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 RowMajor
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 Offset 0
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 0 MatrixStride 16
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 1 Offset 48
-OpMemberDecorate %PerBatchEnvMapConstantBuffer_t 2 Offset 64
-OpDecorate %_arr_PerBatchEnvMapConstantBuffer_t_uint_128 ArrayStride 80
-OpMemberDecorate %_BindlessFastEnvMapCB_PS_t 0 Offset 0
-OpDecorate %_BindlessFastEnvMapCB_PS_t Block
-OpDecorate %_ DescriptorSet 0
-OpDecorate %_ Binding 0
-OpMemberDecorate %PerViewPushConst_t 0 Offset 0
-OpDecorate %PerViewPushConst_t Block
-OpDecorate %g_tColor DescriptorSet 0
-OpDecorate %g_tColor Binding 0
-OpDecorate %g_sAniso DescriptorSet 0
-OpDecorate %g_sAniso Binding 0
-OpDecorate %i_vTextureCoords Location 0
-OpDecorate %_entryPointOutput_vColor Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%14 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%v4float = OpTypeVector %float 4
-%v3float = OpTypeVector %float 3
-%mat4v3float = OpTypeMatrix %v3float 4
-%PerBatchEnvMapConstantBuffer_t = OpTypeStruct %mat4v3float %v4float %v2float
-%uint = OpTypeInt 32 0
-%uint_128 = OpConstant %uint 128
-%_arr_PerBatchEnvMapConstantBuffer_t_uint_128 = OpTypeArray %PerBatchEnvMapConstantBuffer_t %uint_128
-%_BindlessFastEnvMapCB_PS_t = OpTypeStruct %_arr_PerBatchEnvMapConstantBuffer_t_uint_128
-%_ptr_Uniform__BindlessFastEnvMapCB_PS_t = OpTypePointer Uniform %_BindlessFastEnvMapCB_PS_t
-%_ = OpVariable %_ptr_Uniform__BindlessFastEnvMapCB_PS_t Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%ushort = OpTypeInt 16 0
-%PerViewPushConst_t = OpTypeStruct %ushort
-%_ptr_PushConstant_PerViewPushConst_t = OpTypePointer PushConstant %PerViewPushConst_t
-%__0 = OpVariable %_ptr_PushConstant_PerViewPushConst_t PushConstant
-%_ptr_PushConstant_ushort = OpTypePointer PushConstant %ushort
-%int_2 = OpConstant %int 2
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%30 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30
-%g_tColor = OpVariable %_ptr_UniformConstant_30 UniformConstant
-%32 = OpTypeSampler
-%_ptr_UniformConstant_32 = OpTypePointer UniformConstant %32
-%g_sAniso = OpVariable %_ptr_UniformConstant_32 UniformConstant
-%34 = OpTypeSampledImage %30
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%i_vTextureCoords = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_entryPointOutput_vColor = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
-)" + kImportStub + R"(
-%MainPs = OpFunction %void None %14
-%37 = OpLabel
-%38 = OpLoad %v2float %i_vTextureCoords
-%39 = OpAccessChain %_ptr_PushConstant_ushort %__0 %int_0
-%40 = OpLoad %ushort %39
-%41 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 %40 %int_2
-%42 = OpLoad %v2float %41
-%43 = OpFAdd %v2float %38 %42
-;CHECK-NOT: %42 = OpLoad %v2float %41
-;CHECK-NOT: %43 = OpFAdd %v2float %38 %42
-;CHECK: {{%\w+}} = OpUConvert %uint %40
-;CHECK: {{%\w+}} = OpIMul %uint %uint_80 {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_64
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_7
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_82 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v2float %41
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %v2float {{%\w+}} {{%\w+}} [[null_v2float]] {{%\w+}}
-;CHECK: %43 = OpFAdd %v2float %38 {{%\w+}}
-%44 = OpLoad %30 %g_tColor
-%45 = OpLoad %32 %g_sAniso
-%46 = OpSampledImage %34 %44 %45
-%47 = OpImageSampleImplicitLod %v4float %46 %43
-OpStore %_entryPointOutput_vColor %47
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformMatrixRefRowMajor) {
- // The buffer-oob row major matrix check
- //
- // #version 450
- // #extension GL_EXT_scalar_block_layout : enable
- //
- // layout(location = 0) in highp vec4 a_position;
- // layout(location = 0) out mediump float v_vtxResult;
- //
- // layout(set = 0, binding = 0, std430, row_major) uniform Block
- // {
- // lowp mat4x2 var;
- // };
- //
- // void main (void)
- // {
- // v_vtxResult = var[2][1];
- // }
-
- // clang-format off
- std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position
-;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %gl_VertexIndex %gl_InstanceIndex
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_scalar_block_layout"
-OpName %main "main"
-OpName %v_vtxResult "v_vtxResult"
-OpName %Block "Block"
-OpMemberName %Block 0 "var"
-OpName %_ ""
-OpName %a_position "a_position"
-OpDecorate %v_vtxResult RelaxedPrecision
-OpDecorate %v_vtxResult Location 0
-OpMemberDecorate %Block 0 RowMajor
-OpMemberDecorate %Block 0 RelaxedPrecision
-OpMemberDecorate %Block 0 Offset 0
-OpMemberDecorate %Block 0 MatrixStride 16
-OpDecorate %Block Block
-OpDecorate %_ DescriptorSet 0
-OpDecorate %_ Binding 0
-OpDecorate %21 RelaxedPrecision
-;CHECK-NOT: OpDecorate %21 RelaxedPrecision
-;CHECK: OpDecorate %v_vtxResult RelaxedPrecision
-;CHECK: OpDecorate [[phi_result:%\w+]] RelaxedPrecision
-OpDecorate %a_position Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
-;CHECK: OpDecorate [[load_result:%\w+]] RelaxedPrecision
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%v_vtxResult = OpVariable %_ptr_Output_float Output
-%v2float = OpTypeVector %float 2
-%mat4v2float = OpTypeMatrix %v2float 4
-%Block = OpTypeStruct %mat4v2float
-%_ptr_Uniform_Block = OpTypePointer Uniform %Block
-%_ = OpVariable %_ptr_Uniform_Block Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%int_2 = OpConstant %int 2
-%uint = OpTypeInt 32 0
-%uint_1 = OpConstant %uint 1
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-%v4float = OpTypeVector %float 4
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%a_position = OpVariable %_ptr_Input_v4float Input
-;CHECK: %_ptr_Input_uint = OpTypePointer Input %uint
-;CHECK: %gl_VertexIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: %gl_InstanceIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-%20 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2 %uint_1
-%21 = OpLoad %float %20
-;CHECK-NOT: %21 = OpLoad %float %20
-;CHECK: {{%\w+}} = OpIMul %uint %uint_4 %int_2
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIMul %uint %uint_16 %uint_1
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[desc_state:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[desc_state]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[load_result]] = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result]] = OpPhi %float [[load_result]] {{%\w+}} [[null_float]] {{%\w+}}
-OpStore %v_vtxResult %21
-;CHECK-NOT: OpStore %v_vtxResult %21$
-;CHECK: OpStore %v_vtxResult [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformMatrixRefColumnMajor) {
- // The buffer-oob column major matrix check
- //
- // #version 450
- // #extension GL_EXT_scalar_block_layout : enable
- //
- // layout(location = 0) in highp vec4 a_position;
- // layout(location = 0) out mediump float v_vtxResult;
- //
- // layout(set = 0, binding = 0, std430, column_major) uniform Block
- // {
- // lowp mat4x2 var;
- // };
- //
- // void main (void)
- // {
- // v_vtxResult = var[2][1];
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position
-;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %gl_VertexIndex %gl_InstanceIndex
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_scalar_block_layout"
-OpName %main "main"
-OpName %v_vtxResult "v_vtxResult"
-OpName %Block "Block"
-OpMemberName %Block 0 "var"
-OpName %_ ""
-OpName %a_position "a_position"
-OpDecorate %v_vtxResult RelaxedPrecision
-OpDecorate %v_vtxResult Location 0
-OpMemberDecorate %Block 0 ColMajor
-OpMemberDecorate %Block 0 RelaxedPrecision
-OpMemberDecorate %Block 0 Offset 0
-OpMemberDecorate %Block 0 MatrixStride 8
-OpDecorate %Block Block
-OpDecorate %_ DescriptorSet 0
-OpDecorate %_ Binding 0
-OpDecorate %21 RelaxedPrecision
-;CHECK-NOT: OpDecorate %21 RelaxedPrecision
-;CHECK: OpDecorate %v_vtxResult RelaxedPrecision
-;CHECK: OpDecorate [[phi_result:%\w+]] RelaxedPrecision
-OpDecorate %a_position Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
-;CHECK: OpDecorate [[load_result:%\w+]] RelaxedPrecision
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-%v_vtxResult = OpVariable %_ptr_Output_float Output
-%v2float = OpTypeVector %float 2
-%mat4v2float = OpTypeMatrix %v2float 4
-%Block = OpTypeStruct %mat4v2float
-%_ptr_Uniform_Block = OpTypePointer Uniform %Block
-%_ = OpVariable %_ptr_Uniform_Block Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%int_2 = OpConstant %int 2
-%uint = OpTypeInt 32 0
-%uint_1 = OpConstant %uint 1
-%_ptr_Uniform_float = OpTypePointer Uniform %float
-%v4float = OpTypeVector %float 4
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%a_position = OpVariable %_ptr_Input_v4float Input
-;CHECK: %_ptr_Input_uint = OpTypePointer Input %uint
-;CHECK: %gl_VertexIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: %gl_InstanceIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: [[null_float:%\w+]] = OpConstantNull %float
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%20 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2 %uint_1
-%21 = OpLoad %float %20
-;CHECK-NOT: %21 = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpIMul %uint %uint_8 %int_2
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIMul %uint %uint_4 %uint_1
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[desc_state:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_46 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[desc_state]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK:[[load_result]] = OpLoad %float %20
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result]] = OpPhi %float [[load_result]] {{%\w+}} [[null_float]] {{%\w+}}
-OpStore %v_vtxResult %21
-;CHECK-NOT: OpStore %v_vtxResult %21$
-;CHECK: OpStore %v_vtxResult [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- ValidatorOptions()->uniform_buffer_standard_layout = true;
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, UniformMatrixVecRefRowMajor) {
- // The buffer-oob row major matrix vector ref check
- //
- // #version 450
- // #extension GL_EXT_scalar_block_layout : enable
- //
- // layout(location = 0) in highp vec4 a_position;
- // layout(location = 0) out highp vec2 v_vtxResult;
- //
- // layout(set = 3, binding = 7, std430, row_major) uniform Block
- // {
- // lowp mat2 var[3][4];
- // };
- //
- // void main (void)
- // {
- // v_vtxResult = var[2][3][1];
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position
-;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %gl_VertexIndex %gl_InstanceIndex
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_scalar_block_layout"
-OpName %main "main"
-OpName %v_vtxResult "v_vtxResult"
-OpName %Block "Block"
-OpMemberName %Block 0 "var"
-OpName %_ ""
-OpName %a_position "a_position"
-OpDecorate %v_vtxResult Location 0
-OpDecorate %_arr_mat2v2float_uint_4 ArrayStride 32
-OpDecorate %_arr__arr_mat2v2float_uint_4_uint_3 ArrayStride 128
-OpMemberDecorate %Block 0 RowMajor
-OpMemberDecorate %Block 0 RelaxedPrecision
-OpMemberDecorate %Block 0 Offset 0
-OpMemberDecorate %Block 0 MatrixStride 16
-OpDecorate %Block Block
-OpDecorate %_ DescriptorSet 3
-OpDecorate %_ Binding 7
-OpDecorate %26 RelaxedPrecision
-;CHECK-NOT: OpDecorate %26 RelaxedPrecision
-;CHECK: OpDecorate [[phi_result:%\w+]] RelaxedPrecision
-OpDecorate %a_position Location 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
-;CHECK: OpDecorate [[load_result:%\w+]] RelaxedPrecision
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%_ptr_Output_v2float = OpTypePointer Output %v2float
-%v_vtxResult = OpVariable %_ptr_Output_v2float Output
-%mat2v2float = OpTypeMatrix %v2float 2
-%uint = OpTypeInt 32 0
-%uint_4 = OpConstant %uint 4
-%_arr_mat2v2float_uint_4 = OpTypeArray %mat2v2float %uint_4
-%uint_3 = OpConstant %uint 3
-%_arr__arr_mat2v2float_uint_4_uint_3 = OpTypeArray %_arr_mat2v2float_uint_4 %uint_3
-%Block = OpTypeStruct %_arr__arr_mat2v2float_uint_4_uint_3
-%_ptr_Uniform_Block = OpTypePointer Uniform %Block
-%_ = OpVariable %_ptr_Uniform_Block Uniform
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%int_2 = OpConstant %int 2
-%int_3 = OpConstant %int 3
-%int_1 = OpConstant %int 1
-%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
-%v4float = OpTypeVector %float 4
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%a_position = OpVariable %_ptr_Input_v4float Input
-;CHECK: %_ptr_Input_uint = OpTypePointer Input %uint
-;CHECK: %gl_VertexIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: %gl_InstanceIndex = OpVariable %_ptr_Input_uint Input
-;CHECK: [[null_v2float:%\w+]] = OpConstantNull %v2float
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%25 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 %int_2 %int_3 %int_1
-;CHECK: {{%\w+}} = OpIMul %uint %uint_128 %int_2
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIMul %uint %uint_32 %int_3
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpIMul %uint %uint_4 %int_1
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_19
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[desc_state:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_52 {{%\w+}} %uint_3 %uint_7 %uint_0 {{%\w+}}
-%26 = OpLoad %v2float %25
-OpStore %v_vtxResult %26
-;CHECK-NOT: %26 = OpLoad %v2float %25
-;CHECK-NOT: OpStore %v_vtxResult %26
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[desc_state]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[load_result]] = OpLoad %v2float %25
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result]] = OpPhi %v2float [[load_result]] {{%\w+}} [[null_v2float]] {{%\w+}}
-;CHECK: OpStore %v_vtxResult [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, ImageBufferOOBRead) {
- // Texel buffer (imagebuffer) oob check for ImageRead
- //
- // #version 450
- // layout(set=3, binding=7, r32f) uniform readonly imageBuffer s;
- // layout(location=11) out vec4 x;
- // layout(location=13) in flat int ii;
- //
- // void main(){
- // x = imageLoad(s, ii);
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability ImageBuffer
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %x %s %ii
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpName %main "main"
-OpName %x "x"
-OpName %s "s"
-OpName %ii "ii"
-OpDecorate %x Location 11
-OpDecorate %s DescriptorSet 3
-OpDecorate %s Binding 7
-OpDecorate %s NonWritable
-OpDecorate %ii Flat
-OpDecorate %ii Location 13
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%x = OpVariable %_ptr_Output_v4float Output
-%10 = OpTypeImage %float Buffer 0 0 0 2 R32f
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-%s = OpVariable %_ptr_UniformConstant_10 UniformConstant
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%ii = OpVariable %_ptr_Input_int Input
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-%main = OpFunction %void None %3
-%5 = OpLabel
-;CHECK: OpBranch %19
-;CHECK: %19 = OpLabel
-%13 = OpLoad %10 %s
-%17 = OpLoad %int %ii
-%18 = OpImageRead %v4float %13 %17
-OpStore %x %18
-;CHECK-NOT: %18 = OpImageRead %v4float %13 %17
-;CHECK-NOT: OpStore %x %18
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_34 {{%\w+}} %uint_3 %uint_7 %uint_0 %22
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %10 %s
-;CHECK: {{%\w+}} = OpImageRead %v4float {{%\w+}} %17
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %x [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, ImageBufferOOBWrite) {
- // Texel buffer (imagebuffer) oob check for ImageWrite
- //
- // #version 450
- // layout(set=3, binding=7, r32f) uniform readonly imageBuffer s;
- // layout(location=11) out vec4 x;
- // layout(location=13) in flat int ii;
- //
- // void main(){
- // imageStore(s, ii, x);
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability ImageBuffer
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %s %ii %x
-;CHECK: OpEntryPoint Fragment %main "main" %s %ii %x %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpName %main "main"
-OpName %s "s"
-OpName %ii "ii"
-OpName %x "x"
-OpDecorate %s DescriptorSet 3
-OpDecorate %s Binding 7
-OpDecorate %s NonReadable
-OpDecorate %ii Flat
-OpDecorate %ii Location 13
-OpDecorate %x Location 11
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%7 = OpTypeImage %float Buffer 0 0 0 2 R32f
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-%s = OpVariable %_ptr_UniformConstant_7 UniformConstant
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%ii = OpVariable %_ptr_Input_int Input
-%v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%x = OpVariable %_ptr_Output_v4float Output
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: %19 = OpLabel
-%10 = OpLoad %7 %s
-%14 = OpLoad %int %ii
-%18 = OpLoad %v4float %x
-OpImageWrite %10 %14 %18
-;CHECK-NOT: OpImageWrite %10 %14 %18
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_35 {{%\w+}} %uint_3 %uint_7 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %7 %s
-;CHECK: OpImageWrite {{%\w+}} %14 %18
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, TextureBufferOOBFetch) {
- // Texel buffer (texturebuffer) oob check for ImageFetch
- //
- // #version 450
- // layout(set=3, binding=7) uniform textureBuffer s;
- // layout(location=11) out vec4 x;
- // layout(location=13) in flat int ii;
- //
- // void main(){
- // x = texelFetch(s, ii);
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability SampledBuffer
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %x %s %ii
-;CHECK: OpEntryPoint Fragment %main "main" %x %s %ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpName %main "main"
-OpName %x "x"
-OpName %s "s"
-OpName %ii "ii"
-OpDecorate %x Location 11
-OpDecorate %s DescriptorSet 3
-OpDecorate %s Binding 7
-OpDecorate %ii Flat
-OpDecorate %ii Location 13
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%x = OpVariable %_ptr_Output_v4float Output
-%10 = OpTypeImage %float Buffer 0 0 0 1 Unknown
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-%s = OpVariable %_ptr_UniformConstant_10 UniformConstant
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%ii = OpVariable %_ptr_Input_int Input
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-%main = OpFunction %void None %3
-%5 = OpLabel
-;CHECK: OpBranch %19
-;CHECK: %19 = OpLabel
-%13 = OpLoad %10 %s
-%17 = OpLoad %int %ii
-%18 = OpImageFetch %v4float %13 %17
-OpStore %x %18
-;CHECK-NOT: %18 = OpImageFetch %v4float %13 %17
-;CHECK-NOT: OpStore %x %18
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_33 {{%\w+}} %uint_3 %uint_7 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %10 %s
-;CHECK: {{%\w+}} = OpImageFetch %v4float {{%\w+}} %17
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %x [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, SamplerBufferOOBFetch) {
- // Texel buffer (samplerbuffer) oob check for ImageFetch
- //
- // #version 450
- // layout(set=3, binding=7) uniform samplerBuffer s;
- // layout(location=11) out vec4 x;
- // layout(location=13) in flat int ii;
- //
- // void main(){
- // x = texelFetch(s, ii);
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability SampledBuffer
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %x %s %ii
-;CHECK: OpEntryPoint Fragment %main "main" %x %s %ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpName %main "main"
-OpName %x "x"
-OpName %s "s"
-OpName %ii "ii"
-OpDecorate %x Location 11
-OpDecorate %s DescriptorSet 3
-OpDecorate %s Binding 7
-OpDecorate %ii Flat
-OpDecorate %ii Location 13
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%x = OpVariable %_ptr_Output_v4float Output
-%10 = OpTypeImage %float Buffer 0 0 0 1 Unknown
-%11 = OpTypeSampledImage %10
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-%s = OpVariable %_ptr_UniformConstant_11 UniformConstant
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%ii = OpVariable %_ptr_Input_int Input
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-;CHECK: OpBranch %21
-;CHECK: %21 = OpLabel
-%14 = OpLoad %11 %s
-%18 = OpLoad %int %ii
-%19 = OpImage %10 %14
-%20 = OpImageFetch %v4float %19 %18
-OpStore %x %20
-;CHECK-NOT: %20 = OpImageFetch %v4float %19 %18
-;CHECK-NOT: OpStore %x %20
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_35 {{%\w+}} %uint_3 %uint_7 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %11 %s
-;CHECK: {{%\w+}} = OpImage %10 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageFetch %v4float {{%\w+}} {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %x [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, SamplerBufferConstructorOOBFetch) {
- // Texel buffer (samplerbuffer constructor) oob check for ImageFetch
- //
- // #version 450
- // layout(set=3, binding=7) uniform textureBuffer tBuf;
- // layout(set=3, binding=8) uniform sampler s;
- // layout(location=11) out vec4 x;
- // layout(location=13) in flat int ii;
- //
- // void main(){
- // x = texelFetch(samplerBuffer(tBuf, s), ii);
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability SampledBuffer
-;CHECK: OpCapability Linkage
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %main "main" %x %tBuf %s %ii
-;CHECK: OpEntryPoint Fragment %main "main" %x %tBuf %s %ii %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpName %main "main"
-OpName %x "x"
-OpName %tBuf "tBuf"
-OpName %s "s"
-OpName %ii "ii"
-OpDecorate %x Location 11
-OpDecorate %tBuf DescriptorSet 3
-OpDecorate %tBuf Binding 7
-OpDecorate %s DescriptorSet 3
-OpDecorate %s Binding 8
-OpDecorate %ii Flat
-OpDecorate %ii Location 13
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%x = OpVariable %_ptr_Output_v4float Output
-%10 = OpTypeImage %float Buffer 0 0 0 1 Unknown
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-%tBuf = OpVariable %_ptr_UniformConstant_10 UniformConstant
-%14 = OpTypeSampler
-%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
-%s = OpVariable %_ptr_UniformConstant_14 UniformConstant
-%18 = OpTypeSampledImage %10
-%int = OpTypeInt 32 1
-%_ptr_Input_int = OpTypePointer Input %int
-%ii = OpVariable %_ptr_Input_int Input
-;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float
-;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
-;CHECK: [[null_v4float:%\w+]] = OpConstantNull %v4float
-%main = OpFunction %void None %3
-%5 = OpLabel
-%13 = OpLoad %10 %tBuf
-%17 = OpLoad %14 %s
-%19 = OpSampledImage %18 %13 %17
-%23 = OpLoad %int %ii
-%24 = OpImage %10 %19
-%25 = OpImageFetch %v4float %24 %23
-OpStore %x %25
-;CHECK-NOT: %25 = OpImageFetch %v4float %24 %23
-;CHECK-NOT: OpStore %x %25
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_43 {{%\w+}} %uint_3 %uint_7 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %10 %tBuf
-;CHECK: {{%\w+}} = OpSampledImage %18 {{%\w+}} %17
-;CHECK: {{%\w+}} = OpImage %10 {{%\w+}}
-;CHECK: {{%\w+}} = OpImageFetch %v4float {{%\w+}} %23
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v4float {{%\w+}} {{%\w+}} [[null_v4float]] {{%\w+}}
-;CHECK: OpStore %x [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, DeviceBufferAddressOOB) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- // layout(buffer_reference, buffer_reference_align = 16) buffer bufStruct;
- // layout(set = 0, binding = 0) uniform ufoo {
- // bufStruct data;
- // int nWrites;
- // } u_info;
- // layout(buffer_reference, std140) buffer bufStruct {
- // int a[4];
- // };
- // void main() {
- // for (int i=0; i < u_info.nWrites; ++i) {
- // u_info.data.a[i] = 0xdeadca71;
- // }
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability PhysicalStorageBufferAddresses
-;CHECK: OpCapability Linkage
-;CHECK: OpCapability Int64
-OpExtension "SPV_KHR_physical_storage_buffer"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint Vertex %main "main" %u_info
-;CHECK: OpEntryPoint Vertex %main "main" %u_info %gl_VertexIndex %gl_InstanceIndex
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-OpName %i "i"
-OpName %ufoo "ufoo"
-OpMemberName %ufoo 0 "data"
-OpMemberName %ufoo 1 "nWrites"
-OpName %bufStruct "bufStruct"
-OpMemberName %bufStruct 0 "a"
-OpName %u_info "u_info"
-OpMemberDecorate %ufoo 0 Offset 0
-OpMemberDecorate %ufoo 1 Offset 8
-OpDecorate %ufoo Block
-OpDecorate %_arr_int_uint_4 ArrayStride 16
-OpMemberDecorate %bufStruct 0 Offset 0
-OpDecorate %bufStruct Block
-OpDecorate %u_info DescriptorSet 0
-OpDecorate %u_info Binding 0
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%int = OpTypeInt 32 1
-%_ptr_Function_int = OpTypePointer Function %int
-%int_0 = OpConstant %int 0
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_bufStruct PhysicalStorageBuffer
-%ufoo = OpTypeStruct %_ptr_PhysicalStorageBuffer_bufStruct %int
-%uint = OpTypeInt 32 0
-%uint_4 = OpConstant %uint 4
-%_arr_int_uint_4 = OpTypeArray %int %uint_4
-%bufStruct = OpTypeStruct %_arr_int_uint_4
-%_ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer PhysicalStorageBuffer %bufStruct
-%_ptr_Uniform_ufoo = OpTypePointer Uniform %ufoo
-%u_info = OpVariable %_ptr_Uniform_ufoo Uniform
-%int_1 = OpConstant %int 1
-%_ptr_Uniform_int = OpTypePointer Uniform %int
-%bool = OpTypeBool
-%_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer Uniform %_ptr_PhysicalStorageBuffer_bufStruct
-%int_n559035791 = OpConstant %int -559035791
-%_ptr_PhysicalStorageBuffer_int = OpTypePointer PhysicalStorageBuffer %int
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%i = OpVariable %_ptr_Function_int Function
-OpStore %i %int_0
-OpBranch %10
-%10 = OpLabel
-OpLoopMerge %12 %13 None
-OpBranch %14
-%14 = OpLabel
-%15 = OpLoad %int %i
-%26 = OpAccessChain %_ptr_Uniform_int %u_info %int_1
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_8 %uint_3
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_56 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[load_result:%\w+]] = OpLoad %int %26
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %int [[load_result]] {{%\w+}} {{%\w+}} {{%\w+}}
-%27 = OpLoad %int %26
-%29 = OpSLessThan %bool %15 %27
-;CHECK-NOT: %27 = OpLoad %int %26
-;CHECK-NOT: %29 = OpSLessThan %bool %15 %27
-;CHECK: %29 = OpSLessThan %bool %15 [[phi_result]]
-OpBranchConditional %29 %11 %12
-%11 = OpLabel
-%31 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct %u_info %int_0
-%32 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %31
-;CHECK-NOT: %32 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %31
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 %uint_7
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_61 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[load_result_2:%\w+]] = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %31
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpConvertUToPtr %_ptr_PhysicalStorageBuffer_bufStruct {{%\w+}}
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result_2:%\w+]] = OpPhi %_ptr_PhysicalStorageBuffer_bufStruct [[load_result_2]] {{%\w+}} {{%\w+}} {{%\w+}}
-%33 = OpLoad %int %i
-%36 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %32 %int_0 %33
-;CHECK-NOT: %36 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %32 %int_0 %33
-;CHECK: %36 = OpAccessChain %_ptr_PhysicalStorageBuffer_int [[phi_result_2]] %int_0 %33
-OpStore %36 %int_n559035791 Aligned 16
-OpBranch %13
-%13 = OpLabel
-%37 = OpLoad %int %i
-%38 = OpIAdd %int %37 %int_1
-OpStore %i %38
-OpBranch %10
-%12 = OpLabel
-OpReturn
-OpFunctionEnd)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-TEST_F(InstBindlessTest, VertexIndexOOB) {
- // #version 450
- // layout(std140, binding = 0) uniform foo { uint tex_index[1]; }
- // uniform_index_buffer; layout(location = 0) out flat uint index; vec2
- // vertices[3]; void main() {
- // vertices[0] = vec2(-1.0, -1.0);
- // vertices[1] = vec2( 1.0, -1.0);
- // vertices[2] = vec2( 0.0, 1.0);
- // gl_Position = vec4(vertices[gl_VertexIndex % 3], 0.0, 1.0);
- // index = uniform_index_buffer.tex_index[0];
- // }
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel Logical GLSL450
-OpEntryPoint Vertex %main "main" %vertices %_ %gl_VertexIndex %index %uniform_index_buffer
-OpSource GLSL 450
-OpName %main "main"
-OpName %vertices "vertices"
-OpName %gl_PerVertex "gl_PerVertex"
-OpMemberName %gl_PerVertex 0 "gl_Position"
-OpMemberName %gl_PerVertex 1 "gl_PointSize"
-OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
-OpMemberName %gl_PerVertex 3 "gl_CullDistance"
-OpName %_ ""
-OpName %gl_VertexIndex "gl_VertexIndex"
-OpName %index "index"
-OpName %foo "foo"
-OpMemberName %foo 0 "tex_index"
-OpName %uniform_index_buffer "uniform_index_buffer"
-OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
-OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
-OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
-OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
-OpDecorate %gl_PerVertex Block
-OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-OpDecorate %index Flat
-OpDecorate %index Location 0
-OpDecorate %_arr_uint_uint_1 ArrayStride 16
-OpMemberDecorate %foo 0 Offset 0
-OpDecorate %foo Block
-OpDecorate %uniform_index_buffer DescriptorSet 0
-OpDecorate %uniform_index_buffer Binding 0
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%float = OpTypeFloat 32
-%v2float = OpTypeVector %float 2
-%uint = OpTypeInt 32 0
-%uint_3 = OpConstant %uint 3
-%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
-%_ptr_Private__arr_v2float_uint_3 = OpTypePointer Private %_arr_v2float_uint_3
-%vertices = OpVariable %_ptr_Private__arr_v2float_uint_3 Private
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%float_n1 = OpConstant %float -1
-%16 = OpConstantComposite %v2float %float_n1 %float_n1
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-%int_1 = OpConstant %int 1
-%float_1 = OpConstant %float 1
-%21 = OpConstantComposite %v2float %float_1 %float_n1
-%int_2 = OpConstant %int 2
-%float_0 = OpConstant %float 0
-%25 = OpConstantComposite %v2float %float_0 %float_1
-%v4float = OpTypeVector %float 4
-%uint_1 = OpConstant %uint 1
-%_arr_float_uint_1 = OpTypeArray %float %uint_1
-%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
-%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
-%_ = OpVariable %_ptr_Output_gl_PerVertex Output
-%_ptr_Input_int = OpTypePointer Input %int
-%gl_VertexIndex = OpVariable %_ptr_Input_int Input
-%int_3 = OpConstant %int 3
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%_ptr_Output_uint = OpTypePointer Output %uint
-%index = OpVariable %_ptr_Output_uint Output
-%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%foo = OpTypeStruct %_arr_uint_uint_1
-%_ptr_Uniform_foo = OpTypePointer Uniform %foo
-%uniform_index_buffer = OpVariable %_ptr_Uniform_foo Uniform
-%_ptr_Uniform_uint = OpTypePointer Uniform %uint
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%18 = OpAccessChain %_ptr_Private_v2float %vertices %int_0
-OpStore %18 %16
-%22 = OpAccessChain %_ptr_Private_v2float %vertices %int_1
-OpStore %22 %21
-%26 = OpAccessChain %_ptr_Private_v2float %vertices %int_2
-OpStore %26 %25
-%35 = OpLoad %int %gl_VertexIndex
-%37 = OpSMod %int %35 %int_3
-%38 = OpAccessChain %_ptr_Private_v2float %vertices %37
-%39 = OpLoad %v2float %38
-%40 = OpCompositeExtract %float %39 0
-%41 = OpCompositeExtract %float %39 1
-%42 = OpCompositeConstruct %v4float %40 %41 %float_0 %float_1
-%44 = OpAccessChain %_ptr_Output_v4float %_ %int_0
-OpStore %44 %42
-%52 = OpAccessChain %_ptr_Uniform_uint %uniform_index_buffer %int_0 %int_0
-%53 = OpLoad %uint %52
-;CHECK-NOT: %53 = OpLoad %uint %52
-;CHECK: {{%\w+}} = OpIMul %uint %uint_16 %int_0
-;CHECK: {{%\w+}} = OpIAdd %uint %uint_0 {{%\w+}}
-;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
-;CHECK: {{%\w+}} = OpLoad %int %gl_VertexIndex
-;CHECK: {{%\w+}} = OpBitcast %uint {{%\w+}}
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_87 {{%\w+}} %uint_0 %uint_0 %uint_0 {{%\w+}}
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %uint %52
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %uint {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %index [[phi_result]]
-OpStore %index %53
-;CHECK-NOT: OpStore %index %53
-OpReturn
-;CHECK: OpReturn
-OpFunctionEnd)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBindlessCheckPass>(text, true, 23u);
-}
-
-// TODO(greg-lunarg): Add tests to verify handling of these cases:
-//
-// Compute shader
-// Geometry shader
-// Tessellation control shader
-// Tessellation eval shader
-// OpImage
-// SampledImage variable
-
-} // namespace
-} // namespace opt
-} // namespace spvtools
diff --git a/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_buff_addr_check_test.cpp b/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_buff_addr_check_test.cpp
deleted file mode 100644
index 72d343852a..0000000000
--- a/third_party/vulkan-deps/spirv-tools/src/test/opt/inst_buff_addr_check_test.cpp
+++ /dev/null
@@ -1,772 +0,0 @@
-// Copyright (c) 2019-2022 Valve Corporation
-// Copyright (c) 2019-2022 LunarG Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Bindless Check Instrumentation Tests.
-// Tests ending with V2 use version 2 record format.
-
-#include <string>
-#include <vector>
-
-#include "test/opt/pass_fixture.h"
-#include "test/opt/pass_utils.h"
-
-namespace spvtools {
-namespace opt {
-namespace {
-
-static const std::string kFuncName = "inst_buff_addr_search_and_test";
-static const std::string kImportDeco = R"(
-;CHECK: OpDecorate %)" + kFuncName + R"( LinkageAttributes ")" +
- kFuncName + R"(" Import
-)";
-static const std::string kImportStub = R"(
-;CHECK: %)" + kFuncName + R"( = OpFunction %bool None {{%\w+}}
-;CHECK: OpFunctionEnd
-)";
-// clang-format on
-
-using InstBuffAddrTest = PassTest<::testing::Test>;
-
-TEST_F(InstBuffAddrTest, InstPhysicalStorageBufferStore) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- //
- // layout(buffer_reference, buffer_reference_align = 16) buffer bufStruct;
- //
- // layout(set = 0, binding = 0) uniform ufoo {
- // bufStruct data;
- // uint offset;
- // } u_info;
- //
- // layout(buffer_reference, std140) buffer bufStruct {
- // layout(offset = 0) int a[2];
- // layout(offset = 32) int b;
- // };
- //
- // void main() {
- // u_info.data.b = 0xca7;
- // }
-
- const std::string defs = R"(
-OpCapability Shader
-OpCapability PhysicalStorageBufferAddresses
-;CHECK: OpCapability Int64
-OpExtension "SPV_EXT_physical_storage_buffer"
-;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint GLCompute %main "main"
-;CHECK: OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
-OpExecutionMode %main LocalSize 1 1 1
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-OpName %ufoo "ufoo"
-OpMemberName %ufoo 0 "data"
-OpMemberName %ufoo 1 "offset"
-OpName %bufStruct "bufStruct"
-OpMemberName %bufStruct 0 "a"
-OpMemberName %bufStruct 1 "b"
-OpName %u_info "u_info"
-)";
-
- // clang-format off
- const std::string decorates = R"(
-OpMemberDecorate %ufoo 0 Offset 0
-OpMemberDecorate %ufoo 1 Offset 8
-OpDecorate %ufoo Block
-OpDecorate %_arr_int_uint_2 ArrayStride 16
-OpMemberDecorate %bufStruct 0 Offset 0
-OpMemberDecorate %bufStruct 1 Offset 32
-OpDecorate %bufStruct Block
-OpDecorate %u_info DescriptorSet 0
-OpDecorate %u_info Binding 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
-)";
-
- const std::string globals = R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_bufStruct PhysicalStorageBuffer
-%uint = OpTypeInt 32 0
-%ufoo = OpTypeStruct %_ptr_PhysicalStorageBuffer_bufStruct %uint
-%int = OpTypeInt 32 1
-%uint_2 = OpConstant %uint 2
-%_arr_int_uint_2 = OpTypeArray %int %uint_2
-%bufStruct = OpTypeStruct %_arr_int_uint_2 %int
-%_ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer PhysicalStorageBuffer %bufStruct
-%_ptr_Uniform_ufoo = OpTypePointer Uniform %ufoo
-%u_info = OpVariable %_ptr_Uniform_ufoo Uniform
-%int_0 = OpConstant %int 0
-%_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer Uniform %_ptr_PhysicalStorageBuffer_bufStruct
-%int_1 = OpConstant %int 1
-%int_3239 = OpConstant %int 3239
-%_ptr_PhysicalStorageBuffer_int = OpTypePointer PhysicalStorageBuffer %int
-;CHECK: %ulong = OpTypeInt 64 0
-;CHECK: %bool = OpTypeBool
-;CHECK: %v3uint = OpTypeVector %uint 3
-;CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-;CHECK: %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
-)";
-// clang-format off
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%17 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct %u_info %int_0
-%18 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %17
-%22 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %18 %int_1
-;CHECK-NOT: %17 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct %u_info %int_0
-;CHECK-NOT: %18 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %17
-;CHECK-NOT: %22 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %18 %int_1
-;CHECK: %20 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct %u_info %int_0
-;CHECK: %21 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %20
-;CHECK: %22 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %21 %int_1
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %22
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_49 {{%\w+}} {{%\w+}} %uint_4
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpStore %22 %int_3239 Aligned 16
-;CHECK: OpStore %22 %int_3239 Aligned 16
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
-
- // SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(
- defs + decorates + globals + kImportStub + main_func, true, 23u);
-}
-
-TEST_F(InstBuffAddrTest, InstPhysicalStorageBufferLoadAndStore) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
-
- // // forward reference
- // layout(buffer_reference) buffer blockType;
-
- // layout(buffer_reference, std430, buffer_reference_align = 16) buffer
- // blockType {
- // int x;
- // blockType next;
- // };
-
- // layout(std430) buffer rootBlock {
- // blockType root;
- // } r;
-
- // void main()
- // {
- // blockType b = r.root;
- // b = b.next;
- // b.x = 531;
- // }
-
- const std::string defs = R"(
-OpCapability Shader
-OpCapability PhysicalStorageBufferAddresses
-;CHECK: OpCapability Int64
-OpExtension "SPV_EXT_physical_storage_buffer"
-OpExtension "SPV_KHR_storage_buffer_storage_class"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint GLCompute %main "main"
-OpExecutionMode %main LocalSize 1 1 1
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-;CHECK: OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
-OpName %blockType "blockType"
-OpMemberName %blockType 0 "x"
-OpMemberName %blockType 1 "next"
-OpName %rootBlock "rootBlock"
-OpMemberName %rootBlock 0 "root"
-OpName %r "r"
-)";
-
-// clang-format off
- const std::string decorates = R"(
-OpMemberDecorate %blockType 0 Offset 0
-OpMemberDecorate %blockType 1 Offset 8
-OpDecorate %blockType Block
-OpMemberDecorate %rootBlock 0 Offset 0
-OpDecorate %rootBlock Block
-OpDecorate %r DescriptorSet 0
-OpDecorate %r Binding 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
-)";
-
- const std::string globals = R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_blockType PhysicalStorageBuffer
-%int = OpTypeInt 32 1
-%blockType = OpTypeStruct %int %_ptr_PhysicalStorageBuffer_blockType
-%_ptr_PhysicalStorageBuffer_blockType = OpTypePointer PhysicalStorageBuffer %blockType
-%rootBlock = OpTypeStruct %_ptr_PhysicalStorageBuffer_blockType
-%_ptr_StorageBuffer_rootBlock = OpTypePointer StorageBuffer %rootBlock
-%r = OpVariable %_ptr_StorageBuffer_rootBlock StorageBuffer
-%int_0 = OpConstant %int 0
-%_ptr_StorageBuffer__ptr_PhysicalStorageBuffer_blockType = OpTypePointer StorageBuffer %_ptr_PhysicalStorageBuffer_blockType
-%int_1 = OpConstant %int 1
-%_ptr_PhysicalStorageBuffer__ptr_PhysicalStorageBuffer_blockType = OpTypePointer PhysicalStorageBuffer %_ptr_PhysicalStorageBuffer_blockType
-%int_531 = OpConstant %int 531
-%_ptr_PhysicalStorageBuffer_int = OpTypePointer PhysicalStorageBuffer %int
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%16 = OpAccessChain %_ptr_StorageBuffer__ptr_PhysicalStorageBuffer_blockType %r %int_0
-%17 = OpLoad %_ptr_PhysicalStorageBuffer_blockType %16
-%21 = OpAccessChain %_ptr_PhysicalStorageBuffer__ptr_PhysicalStorageBuffer_blockType %17 %int_1
-%22 = OpLoad %_ptr_PhysicalStorageBuffer_blockType %21 Aligned 8
-%26 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %22 %int_0
-OpStore %26 %int_531 Aligned 16
-;CHECK-NOT: %22 = OpLoad %_ptr_PhysicalStorageBuffer_blockType %21 Aligned 8
-;CHECK-NOT: %26 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %22 %int_0
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %21
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_45 {{%\w+}} {{%\w+}} %uint_8
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %_ptr_PhysicalStorageBuffer_blockType %21 Aligned 8
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpConvertUToPtr %_ptr_PhysicalStorageBuffer_blockType %52
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpPhi %_ptr_PhysicalStorageBuffer_blockType {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: %26 = OpAccessChain %_ptr_PhysicalStorageBuffer_int {{%\w+}} %int_0
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %26
-;CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_5 {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_47 {{%\w+}} {{%\w+}} %uint_4
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %26 %int_531 Aligned 16
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(
- defs + decorates + globals + kImportStub + main_func, true, 23u);
-}
-
-TEST_F(InstBuffAddrTest, StructLoad) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- // #extension GL_ARB_gpu_shader_int64 : enable
- // struct Test {
- // float a;
- // };
- //
- // layout(buffer_reference, std430, buffer_reference_align = 16) buffer
- // TestBuffer { Test test; };
- //
- // Test GetTest(uint64_t ptr) {
- // return TestBuffer(ptr).test;
- // }
- //
- // void main() {
- // GetTest(0xe0000000);
- // }
-
- const std::string defs =
- R"(
-OpCapability Shader
-OpCapability Int64
-OpCapability PhysicalStorageBufferAddresses
-;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class"
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint Fragment %main "main"
-;CHECK: OpEntryPoint Fragment %main "main" %gl_FragCoord
-OpExecutionMode %main OriginUpperLeft
-OpSource GLSL 450
-OpSourceExtension "GL_ARB_gpu_shader_int64"
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-OpName %Test "Test"
-OpMemberName %Test 0 "a"
-OpName %Test_0 "Test"
-OpMemberName %Test_0 0 "a"
-OpName %TestBuffer "TestBuffer"
-OpMemberName %TestBuffer 0 "test"
-)";
-
- // clang-format off
- const std::string decorates = R"(
-OpMemberDecorate %Test_0 0 Offset 0
-OpMemberDecorate %TestBuffer 0 Offset 0
-OpDecorate %TestBuffer Block
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
-)";
-
- const std::string globals = R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%ulong = OpTypeInt 64 0
-%float = OpTypeFloat 32
-%Test = OpTypeStruct %float
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_TestBuffer PhysicalStorageBuffer
-%Test_0 = OpTypeStruct %float
-%TestBuffer = OpTypeStruct %Test_0
-%_ptr_PhysicalStorageBuffer_TestBuffer = OpTypePointer PhysicalStorageBuffer %TestBuffer
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%_ptr_PhysicalStorageBuffer_Test_0 = OpTypePointer PhysicalStorageBuffer %Test_0
-%ulong_18446744073172680704 = OpConstant %ulong 18446744073172680704
-;CHECK: {{%\w+}} = OpConstantNull %Test_0
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%37 = OpConvertUToPtr %_ptr_PhysicalStorageBuffer_TestBuffer %ulong_18446744073172680704
-%38 = OpAccessChain %_ptr_PhysicalStorageBuffer_Test_0 %37 %int_0
-%39 = OpLoad %Test_0 %38 Aligned 16
-;CHECK-NOT: %39 = OpLoad %Test_0 %38 Aligned 16
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %38
-;CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
-;CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
-;CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_4 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_38 {{%\w+}} {{%\w+}} %uint_4
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %Test_0 %38 Aligned 16
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %Test_0 {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-%40 = OpCopyLogical %Test %39
-;CHECK-NOT: %40 = OpCopyLogical %Test %39
-;CHECK: %40 = OpCopyLogical %Test [[phi_result]]
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(
- defs + decorates + globals + kImportStub + main_func, true);
-}
-
-TEST_F(InstBuffAddrTest, PaddedStructLoad) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- // #extension GL_ARB_gpu_shader_int64 : enable
- // struct Test {
- // uvec3 pad_1; // Offset 0 Size 12
- // double pad_2; // Offset 16 Size 8 (alignment requirement)
- // float a; // Offset 24 Size 4
- // }; // Total Size 28
- //
- // layout(buffer_reference, std430, buffer_reference_align = 16) buffer
- // TestBuffer { Test test; };
- //
- // Test GetTest(uint64_t ptr) {
- // return TestBuffer(ptr).test;
- // }
- //
- // void main() {
- // GetTest(0xe0000000);
- // }
-
- const std::string defs =
- R"(
-OpCapability Shader
-OpCapability Float64
-OpCapability Int64
-OpCapability PhysicalStorageBufferAddresses
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint Vertex %main "main"
-OpSource GLSL 450
-OpSourceExtension "GL_ARB_gpu_shader_int64"
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-OpName %Test "Test"
-OpMemberName %Test 0 "pad_1"
-OpMemberName %Test 1 "pad_2"
-OpMemberName %Test 2 "a"
-OpName %GetTest_u641_ "GetTest(u641;"
-OpName %ptr "ptr"
-OpName %Test_0 "Test"
-OpMemberName %Test_0 0 "pad_1"
-OpMemberName %Test_0 1 "pad_2"
-OpMemberName %Test_0 2 "a"
-OpName %TestBuffer "TestBuffer"
-OpMemberName %TestBuffer 0 "test"
-OpName %param "param"
-)";
-
- // clang-format off
- const std::string decorates = R"(
-OpDecorate %TestBuffer Block
-OpMemberDecorate %Test_0 0 Offset 0
-OpMemberDecorate %Test_0 1 Offset 16
-OpMemberDecorate %Test_0 2 Offset 24
-OpMemberDecorate %TestBuffer 0 Offset 0
-)" + kImportDeco + R"(
-;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex
-;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
-)";
-
- const std::string globals = R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%ulong = OpTypeInt 64 0
-%_ptr_Function_ulong = OpTypePointer Function %ulong
-%uint = OpTypeInt 32 0
-%v3uint = OpTypeVector %uint 3
-%double = OpTypeFloat 64
-%float = OpTypeFloat 32
-%Test = OpTypeStruct %v3uint %double %float
-%13 = OpTypeFunction %Test %_ptr_Function_ulong
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_TestBuffer PhysicalStorageBuffer
-%Test_0 = OpTypeStruct %v3uint %double %float
-%TestBuffer = OpTypeStruct %Test_0
-%_ptr_PhysicalStorageBuffer_TestBuffer = OpTypePointer PhysicalStorageBuffer %TestBuffer
-%int = OpTypeInt 32 1
-%int_0 = OpConstant %int 0
-%_ptr_PhysicalStorageBuffer_Test_0 = OpTypePointer PhysicalStorageBuffer %Test_0
-%_ptr_Function_Test = OpTypePointer Function %Test
-%ulong_18446744073172680704 = OpConstant %ulong 18446744073172680704
-;CHECK: {{%\w+}} = OpConstantNull %Test_0
-)";
-
- const std::string main_func = R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%param = OpVariable %_ptr_Function_ulong Function
-OpStore %param %ulong_18446744073172680704
-%35 = OpFunctionCall %Test %GetTest_u641_ %param
-OpReturn
-OpFunctionEnd
-%GetTest_u641_ = OpFunction %Test None %13
-%ptr = OpFunctionParameter %_ptr_Function_ulong
-%16 = OpLabel
-%28 = OpVariable %_ptr_Function_Test Function
-%17 = OpLoad %ulong %ptr
-%21 = OpConvertUToPtr %_ptr_PhysicalStorageBuffer_TestBuffer %17
-%25 = OpAccessChain %_ptr_PhysicalStorageBuffer_Test_0 %21 %int_0
-%26 = OpLoad %Test_0 %25 Aligned 16
-%29 = OpCopyLogical %Test %26
-;CHECK-NOT: %30 = OpLoad %Test %28
-;CHECK-NOT: %26 = OpLoad %Test_0 %25 Aligned 16
-;CHECK-NOT: %29 = OpCopyLogical %Test %26
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %25
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_63 {{%\w+}} {{%\w+}} %uint_28
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %Test_0 %25 Aligned 16
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %Test_0 {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: %29 = OpCopyLogical %Test [[phi_result]]
-OpStore %28 %29
-%30 = OpLoad %Test %28
-OpReturnValue %30
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(
- defs + decorates + globals + kImportStub + main_func, true);
-}
-
-TEST_F(InstBuffAddrTest, DeviceBufferAddressOOB) {
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- // layout(buffer_reference, buffer_reference_align = 16) buffer bufStruct;
- // layout(set = 0, binding = 0) uniform ufoo {
- // bufStruct data;
- // int nWrites;
- // } u_info;
- // layout(buffer_reference, std140) buffer bufStruct {
- // int a[4];
- // };
- // void main() {
- // for (int i=0; i < u_info.nWrites; ++i) {
- // u_info.data.a[i] = 0xdeadca71;
- // }
- // }
-
- // clang-format off
- const std::string text = R"(
-OpCapability Shader
-OpCapability PhysicalStorageBufferAddresses
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint Vertex %main "main" %u_info
-;CHECK: OpEntryPoint Vertex %main "main" %u_info %gl_VertexIndex %gl_InstanceIndex
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_buffer_reference"
-OpName %main "main"
-OpName %i "i"
-OpName %ufoo "ufoo"
-OpMemberName %ufoo 0 "data"
-OpMemberName %ufoo 1 "nWrites"
-OpName %bufStruct "bufStruct"
-OpMemberName %bufStruct 0 "a"
-OpName %u_info "u_info"
-OpMemberDecorate %ufoo 0 Offset 0
-OpMemberDecorate %ufoo 1 Offset 8
-OpDecorate %ufoo Block
-OpDecorate %_arr_int_uint_4 ArrayStride 16
-OpMemberDecorate %bufStruct 0 Offset 0
-OpDecorate %bufStruct Block
-OpDecorate %u_info DescriptorSet 0
-OpDecorate %u_info Binding 0
-)" + kImportDeco + R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%int = OpTypeInt 32 1
-%_ptr_Function_int = OpTypePointer Function %int
-%int_0 = OpConstant %int 0
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_bufStruct PhysicalStorageBuffer
-%ufoo = OpTypeStruct %_ptr_PhysicalStorageBuffer_bufStruct %int
-%uint = OpTypeInt 32 0
-%uint_4 = OpConstant %uint 4
-%_arr_int_uint_4 = OpTypeArray %int %uint_4
-%bufStruct = OpTypeStruct %_arr_int_uint_4
-%_ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer PhysicalStorageBuffer %bufStruct
-%_ptr_Uniform_ufoo = OpTypePointer Uniform %ufoo
-%u_info = OpVariable %_ptr_Uniform_ufoo Uniform
-%int_1 = OpConstant %int 1
-%_ptr_Uniform_int = OpTypePointer Uniform %int
-%bool = OpTypeBool
-%_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct = OpTypePointer Uniform %_ptr_PhysicalStorageBuffer_bufStruct
-%int_n559035791 = OpConstant %int -559035791
-%_ptr_PhysicalStorageBuffer_int = OpTypePointer PhysicalStorageBuffer %int
-)" + kImportStub + R"(
-%main = OpFunction %void None %3
-%5 = OpLabel
-%i = OpVariable %_ptr_Function_int Function
-OpStore %i %int_0
-OpBranch %10
-%10 = OpLabel
-OpLoopMerge %12 %13 None
-OpBranch %14
-%14 = OpLabel
-%15 = OpLoad %int %i
-%26 = OpAccessChain %_ptr_Uniform_int %u_info %int_1
-%27 = OpLoad %int %26
-%29 = OpSLessThan %bool %15 %27
-OpBranchConditional %29 %11 %12
-%11 = OpLabel
-%31 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_bufStruct %u_info %int_0
-%32 = OpLoad %_ptr_PhysicalStorageBuffer_bufStruct %31
-%33 = OpLoad %int %i
-%36 = OpAccessChain %_ptr_PhysicalStorageBuffer_int %32 %int_0 %33
-OpStore %36 %int_n559035791 Aligned 16
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %36
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: {{%\w+}} = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_63 {{%\w+}} {{%\w+}} %uint_4
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpStore %36 %int_n559035791 Aligned 16
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-OpBranch %13
-%13 = OpLabel
-%37 = OpLoad %int %i
-%38 = OpIAdd %int %37 %int_1
-OpStore %i %38
-OpBranch %10
-%12 = OpLabel
-OpReturn
-OpFunctionEnd)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(text, true, 23);
-}
-
-TEST_F(InstBuffAddrTest, UVec3ScalarAddressOOB) {
- // clang-format off
- // #version 450
- // #extension GL_EXT_buffer_reference : enable
- // #extension GL_EXT_scalar_block_layout : enable
- // layout(buffer_reference, std430, scalar) readonly buffer IndexBuffer
- // {
- // uvec3 indices[];
- // };
- // layout(set = 0, binding = 0) uniform ufoo {
- // IndexBuffer data;
- // int nReads;
- // } u_info;
- // void main() {
- // uvec3 readvec;
- // for (int i=0; i < u_info.nReads; ++i) {
- // readvec = u_info.data.indices[i];
- // }
- // }
- const std::string text = R"(
-OpCapability Shader
-OpCapability PhysicalStorageBufferAddresses
-%1 = OpExtInstImport "GLSL.std.450"
-OpMemoryModel PhysicalStorageBuffer64 GLSL450
-OpEntryPoint Vertex %main "main" %u_info
-OpSource GLSL 450
-OpSourceExtension "GL_EXT_buffer_reference"
-OpSourceExtension "GL_EXT_scalar_block_layout"
-OpName %main "main"
-OpName %i "i"
-OpName %ufoo "ufoo"
-OpMemberName %ufoo 0 "data"
-OpMemberName %ufoo 1 "nReads"
-OpName %IndexBuffer "IndexBuffer"
-OpMemberName %IndexBuffer 0 "indices"
-OpName %u_info "u_info"
-OpName %readvec "readvec"
-OpMemberDecorate %ufoo 0 Offset 0
-OpMemberDecorate %ufoo 1 Offset 8
-OpDecorate %ufoo Block
-OpDecorate %_runtimearr_v3uint ArrayStride 12
-OpMemberDecorate %IndexBuffer 0 NonWritable
-OpMemberDecorate %IndexBuffer 0 Offset 0
-OpDecorate %IndexBuffer Block
-OpDecorate %u_info DescriptorSet 0
-OpDecorate %u_info Binding 0
-)" + kImportDeco + R"(
-%void = OpTypeVoid
-%3 = OpTypeFunction %void
-%int = OpTypeInt 32 1
-%_ptr_Function_int = OpTypePointer Function %int
-%int_0 = OpConstant %int 0
-OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_IndexBuffer PhysicalStorageBuffer
-%ufoo = OpTypeStruct %_ptr_PhysicalStorageBuffer_IndexBuffer %int
-%uint = OpTypeInt 32 0
-%v3uint = OpTypeVector %uint 3
-%_runtimearr_v3uint = OpTypeRuntimeArray %v3uint
-%IndexBuffer = OpTypeStruct %_runtimearr_v3uint
-%_ptr_PhysicalStorageBuffer_IndexBuffer = OpTypePointer PhysicalStorageBuffer %IndexBuffer
-%_ptr_Uniform_ufoo = OpTypePointer Uniform %ufoo
-%u_info = OpVariable %_ptr_Uniform_ufoo Uniform
-%int_1 = OpConstant %int 1
-%_ptr_Uniform_int = OpTypePointer Uniform %int
-%bool = OpTypeBool
-)" + kImportStub + R"(
-%_ptr_Function_v3uint = OpTypePointer Function %v3uint
-%_ptr_Uniform__ptr_PhysicalStorageBuffer_IndexBuffer = OpTypePointer Uniform %_ptr_PhysicalStorageBuffer_IndexBuffer
-%_ptr_PhysicalStorageBuffer_v3uint = OpTypePointer PhysicalStorageBuffer %v3uint
-%main = OpFunction %void None %3
-%5 = OpLabel
-%i = OpVariable %_ptr_Function_int Function
-%readvec = OpVariable %_ptr_Function_v3uint Function
-OpStore %i %int_0
-OpBranch %10
-%10 = OpLabel
-OpLoopMerge %12 %13 None
-OpBranch %14
-%14 = OpLabel
-%15 = OpLoad %int %i
-%26 = OpAccessChain %_ptr_Uniform_int %u_info %int_1
-%27 = OpLoad %int %26
-%29 = OpSLessThan %bool %15 %27
-OpBranchConditional %29 %11 %12
-%11 = OpLabel
-%33 = OpAccessChain %_ptr_Uniform__ptr_PhysicalStorageBuffer_IndexBuffer %u_info %int_0
-%34 = OpLoad %_ptr_PhysicalStorageBuffer_IndexBuffer %33
-%35 = OpLoad %int %i
-%37 = OpAccessChain %_ptr_PhysicalStorageBuffer_v3uint %34 %int_0 %35
-%38 = OpLoad %v3uint %37 Aligned 4
-OpStore %readvec %38
-;CHECK-NOT: %38 = OpLoad %v3uint %37 Aligned 4
-;CHECK-NOT: OpStore %readvec %38
-;CHECK: {{%\w+}} = OpConvertPtrToU %ulong %37
-;CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
-;CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
-;CHECK: {{%\w+}} = OpCompositeConstruct %v4uint %uint_0 {{%\w+}} {{%\w+}} %uint_0
-;CHECK: [[test_result:%\w+]] = OpFunctionCall %bool %)" + kFuncName + R"( %uint_23 %uint_67 {{%\w+}} {{%\w+}} %uint_12
-;CHECK: OpSelectionMerge {{%\w+}} None
-;CHECK: OpBranchConditional [[test_result]] {{%\w+}} {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: {{%\w+}} = OpLoad %v3uint %37 Aligned 4
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: OpBranch {{%\w+}}
-;CHECK: {{%\w+}} = OpLabel
-;CHECK: [[phi_result:%\w+]] = OpPhi %v3uint {{%\w+}} {{%\w+}} {{%\w+}} {{%\w+}}
-;CHECK: OpStore %readvec [[phi_result]]
-OpBranch %13
-%13 = OpLabel
-%39 = OpLoad %int %i
-%40 = OpIAdd %int %39 %int_1
-OpStore %i %40
-OpBranch %10
-%12 = OpLabel
-OpReturn
-OpFunctionEnd
-)";
- // clang-format on
-
- SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
- SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
- ValidatorOptions()->scalar_block_layout = true;
- SinglePassRunAndMatch<InstBuffAddrCheckPass>(text, true, 23);
-}
-
-} // namespace
-} // namespace opt
-} // namespace spvtools
diff --git a/third_party/vulkan-deps/spirv-tools/src/test/val/val_interfaces_test.cpp b/third_party/vulkan-deps/spirv-tools/src/test/val/val_interfaces_test.cpp
index 4f62be799d..40e67184d5 100644
--- a/third_party/vulkan-deps/spirv-tools/src/test/val/val_interfaces_test.cpp
+++ b/third_party/vulkan-deps/spirv-tools/src/test/val/val_interfaces_test.cpp
@@ -623,6 +623,72 @@ OpFunctionEnd
"at location 1"));
}
+TEST_F(ValidateInterfacesTest, VulkanPatchAndNonPatchOverlap) {
+ const std::string text = R"(
+ OpCapability Tessellation
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint TessellationControl %main "main" %a %b
+ OpExecutionMode %main OutputVertices 4
+ OpDecorate %a Location 0
+ OpDecorate %b Patch
+ OpDecorate %b Location 0
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_4 = OpConstant %uint 4
+%_arr_float_uint_4 = OpTypeArray %float %uint_4
+%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
+ %a = OpVariable %_ptr_Output__arr_float_uint_4 Output
+%_ptr_Output_float = OpTypePointer Output %float
+ %b = OpVariable %_ptr_Output_float Output
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ OpReturn
+ OpFunctionEnd
+ )";
+
+ CompileSuccessfully(text, SPV_ENV_VULKAN_1_2);
+ EXPECT_EQ(SPV_SUCCESS, ValidateInstructions(SPV_ENV_VULKAN_1_2));
+}
+
+TEST_F(ValidateInterfacesTest, VulkanPatchOverlap) {
+ const std::string text = R"(
+ OpCapability Tessellation
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint TessellationControl %main "main" %a %b %c
+ OpExecutionMode %main OutputVertices 4
+ OpDecorate %a Location 0
+ OpDecorate %b Patch
+ OpDecorate %b Location 6
+ OpDecorate %c Patch
+ OpDecorate %c Location 6
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_4 = OpConstant %uint 4
+%_arr_float_uint_4 = OpTypeArray %float %uint_4
+%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
+ %a = OpVariable %_ptr_Output__arr_float_uint_4 Output
+%_ptr_Output_float = OpTypePointer Output %float
+ %b = OpVariable %_ptr_Output_float Output
+ %c = OpVariable %_ptr_Output_float Output
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ OpReturn
+ OpFunctionEnd
+ )";
+
+ CompileSuccessfully(text, SPV_ENV_VULKAN_1_2);
+ EXPECT_EQ(SPV_ERROR_INVALID_DATA, ValidateInstructions(SPV_ENV_VULKAN_1_2));
+ EXPECT_THAT(getDiagnosticString(),
+ AnyVUID("VUID-StandaloneSpirv-OpEntryPoint-08722"));
+ EXPECT_THAT(getDiagnosticString(),
+ HasSubstr("Entry-point has conflicting output location "
+ "assignment at location 6, component 0"));
+}
+
TEST_F(ValidateInterfacesTest,
VulkanLocationsSameLocationInputAndOutputNoConflict) {
const std::string text = R"(
diff --git a/third_party/vulkan-deps/spirv-tools/src/test/val/val_memory_test.cpp b/third_party/vulkan-deps/spirv-tools/src/test/val/val_memory_test.cpp
index 74a17e9846..dfddc98725 100644
--- a/third_party/vulkan-deps/spirv-tools/src/test/val/val_memory_test.cpp
+++ b/third_party/vulkan-deps/spirv-tools/src/test/val/val_memory_test.cpp
@@ -2348,19 +2348,209 @@ OpFunctionEnd)";
EXPECT_EQ(SPV_SUCCESS, ValidateInstructions());
}
+std::string GenCoopMatLoadStoreShaderKHR(const std::string& storeMemoryAccess,
+ const std::string& loadMemoryAccess) {
+ std::string s = R"(
+OpCapability Shader
+OpCapability GroupNonUniform
+OpCapability VulkanMemoryModelKHR
+OpCapability CooperativeMatrixKHR
+OpExtension "SPV_KHR_vulkan_memory_model"
+OpExtension "SPV_KHR_cooperative_matrix"
+%1 = OpExtInstImport "GLSL.std.450"
+OpMemoryModel Logical VulkanKHR
+OpEntryPoint GLCompute %4 "main" %11 %21
+OpExecutionMode %4 LocalSize 1 1 1
+OpDecorate %11 BuiltIn SubgroupId
+OpDecorate %21 BuiltIn WorkgroupId
+OpDecorate %74 ArrayStride 4
+OpMemberDecorate %75 0 Offset 0
+OpDecorate %75 Block
+OpDecorate %77 DescriptorSet 0
+OpDecorate %77 Binding 0
+OpDecorate %92 ArrayStride 4
+OpMemberDecorate %93 0 Offset 0
+OpDecorate %93 Block
+OpDecorate %95 DescriptorSet 0
+OpDecorate %95 Binding 1
+OpDecorate %102 ArrayStride 4
+OpMemberDecorate %103 0 Offset 0
+OpDecorate %103 Block
+OpDecorate %105 DescriptorSet 0
+OpDecorate %105 Binding 2
+OpDecorate %117 ArrayStride 4
+OpMemberDecorate %118 0 Offset 0
+OpDecorate %118 Block
+OpDecorate %120 DescriptorSet 0
+OpDecorate %120 Binding 3
+OpDecorate %123 SpecId 2
+OpDecorate %124 SpecId 3
+OpDecorate %125 SpecId 4
+OpDecorate %126 SpecId 5
+OpDecorate %127 SpecId 0
+OpDecorate %128 SpecId 1
+OpDecorate %129 BuiltIn WorkgroupSize
+%2 = OpTypeVoid
+%3 = OpTypeFunction %2
+%6 = OpTypeInt 32 0
+%7 = OpTypeVector %6 2
+%8 = OpTypePointer Function %7
+%10 = OpTypePointer Input %6
+%11 = OpVariable %10 Input
+%13 = OpConstant %6 2
+%19 = OpTypeVector %6 3
+%20 = OpTypePointer Input %19
+%21 = OpVariable %20 Input
+%27 = OpConstantComposite %7 %13 %13
+%31 = OpTypePointer Function %6
+%33 = OpConstant %6 1024
+%34 = OpConstant %6 1
+%38 = OpConstant %6 8
+%39 = OpConstant %6 0
+%68 = OpTypeFloat 32
+%69 = OpConstant %6 16
+%70 = OpConstant %6 3
+%71 = OpTypeCooperativeMatrixKHR %68 %70 %69 %38 %39
+%72 = OpTypePointer Function %71
+%74 = OpTypeRuntimeArray %68
+%75 = OpTypeStruct %74
+%76 = OpTypePointer StorageBuffer %75
+%77 = OpVariable %76 StorageBuffer
+%78 = OpTypeInt 32 1
+%79 = OpConstant %78 0
+%81 = OpConstant %6 5
+%82 = OpTypePointer StorageBuffer %68
+%84 = OpConstant %6 64
+%88 = OpTypePointer Private %71
+%89 = OpVariable %88 Private
+%92 = OpTypeRuntimeArray %68
+%93 = OpTypeStruct %92
+%94 = OpTypePointer StorageBuffer %93
+%95 = OpVariable %94 StorageBuffer
+%99 = OpVariable %88 Private
+%102 = OpTypeRuntimeArray %68
+%103 = OpTypeStruct %102
+%104 = OpTypePointer StorageBuffer %103
+%105 = OpVariable %104 StorageBuffer
+%109 = OpVariable %88 Private
+%111 = OpVariable %88 Private
+%112 = OpSpecConstantOp %6 CooperativeMatrixLengthKHR %71
+%113 = OpSpecConstantOp %78 IAdd %112 %79
+%117 = OpTypeRuntimeArray %68
+%118 = OpTypeStruct %117
+%119 = OpTypePointer StorageBuffer %118
+%120 = OpVariable %119 StorageBuffer
+%123 = OpSpecConstant %78 1
+%124 = OpSpecConstant %78 1
+%125 = OpSpecConstant %78 1
+%126 = OpSpecConstant %78 1
+%127 = OpSpecConstant %6 1
+%128 = OpSpecConstant %6 1
+%129 = OpSpecConstantComposite %19 %127 %128 %34
+%4 = OpFunction %2 None %3
+%5 = OpLabel
+%9 = OpVariable %8 Function
+%18 = OpVariable %8 Function
+%32 = OpVariable %31 Function
+%44 = OpVariable %31 Function
+%52 = OpVariable %31 Function
+%60 = OpVariable %31 Function
+%73 = OpVariable %72 Function
+%91 = OpVariable %72 Function
+%101 = OpVariable %72 Function
+%12 = OpLoad %6 %11
+%14 = OpUMod %6 %12 %13
+%15 = OpLoad %6 %11
+%16 = OpUDiv %6 %15 %13
+%17 = OpCompositeConstruct %7 %14 %16
+OpStore %9 %17
+%22 = OpLoad %19 %21
+%23 = OpVectorShuffle %7 %22 %22 0 1
+%24 = OpCompositeExtract %6 %23 0
+%25 = OpCompositeExtract %6 %23 1
+%26 = OpCompositeConstruct %7 %24 %25
+%28 = OpIMul %7 %26 %27
+%29 = OpLoad %7 %9
+%30 = OpIAdd %7 %28 %29
+OpStore %18 %30
+%35 = OpAccessChain %31 %18 %34
+%36 = OpLoad %6 %35
+%37 = OpIMul %6 %33 %36
+%40 = OpAccessChain %31 %18 %39
+%41 = OpLoad %6 %40
+%42 = OpIMul %6 %38 %41
+%43 = OpIAdd %6 %37 %42
+OpStore %32 %43
+%45 = OpAccessChain %31 %18 %34
+%46 = OpLoad %6 %45
+%47 = OpIMul %6 %33 %46
+%48 = OpAccessChain %31 %18 %39
+%49 = OpLoad %6 %48
+%50 = OpIMul %6 %38 %49
+%51 = OpIAdd %6 %47 %50
+OpStore %44 %51
+%53 = OpAccessChain %31 %18 %34
+%54 = OpLoad %6 %53
+%55 = OpIMul %6 %33 %54
+%56 = OpAccessChain %31 %18 %39
+%57 = OpLoad %6 %56
+%58 = OpIMul %6 %38 %57
+%59 = OpIAdd %6 %55 %58
+OpStore %52 %59
+%61 = OpAccessChain %31 %18 %34
+%62 = OpLoad %6 %61
+%63 = OpIMul %6 %33 %62
+%64 = OpAccessChain %31 %18 %39
+%65 = OpLoad %6 %64
+%66 = OpIMul %6 %38 %65
+%67 = OpIAdd %6 %63 %66
+OpStore %60 %67
+%80 = OpLoad %6 %32
+%83 = OpAccessChain %82 %77 %79 %80
+%87 = OpCooperativeMatrixLoadKHR %71 %83 %39 %84 )" +
+ loadMemoryAccess + R"( %81
+OpStore %73 %87
+%90 = OpLoad %71 %73
+OpStore %89 %90
+%96 = OpLoad %6 %44
+%97 = OpAccessChain %82 %95 %79 %96
+%98 = OpCooperativeMatrixLoadKHR %71 %97 %39 %84 MakePointerVisibleKHR|NonPrivatePointerKHR %81
+OpStore %91 %98
+%100 = OpLoad %71 %91
+OpStore %99 %100
+%106 = OpLoad %6 %52
+%107 = OpAccessChain %82 %105 %79 %106
+%108 = OpCooperativeMatrixLoadKHR %71 %107 %39 %84 MakePointerVisibleKHR|NonPrivatePointerKHR %81
+OpStore %101 %108
+%110 = OpLoad %71 %101
+OpStore %109 %110
+%114 = OpConvertSToF %68 %113
+%115 = OpCompositeConstruct %71 %114
+OpStore %111 %115
+%116 = OpLoad %71 %111
+%121 = OpLoad %6 %60
+%122 = OpAccessChain %82 %120 %79 %121
+OpCooperativeMatrixStoreKHR %122 %116 %39 %84 )" + storeMemoryAccess + R"( %81
+OpReturn
+OpFunctionEnd
+)";
+
+ return s;
+}
+
TEST_F(ValidateMemory, CoopMatKHRLoadStoreSuccess) {
- std::string spirv =
- GenCoopMatLoadStoreShader("MakePointerAvailableKHR|NonPrivatePointerKHR",
- "MakePointerVisibleKHR|NonPrivatePointerKHR");
+ std::string spirv = GenCoopMatLoadStoreShaderKHR(
+ "MakePointerAvailableKHR|NonPrivatePointerKHR",
+ "MakePointerVisibleKHR|NonPrivatePointerKHR");
CompileSuccessfully(spirv.c_str(), SPV_ENV_VULKAN_1_1);
EXPECT_EQ(SPV_SUCCESS, ValidateInstructions(SPV_ENV_VULKAN_1_1));
}
TEST_F(ValidateMemory, CoopMatKHRStoreMemoryAccessFail) {
- std::string spirv =
- GenCoopMatLoadStoreShader("MakePointerVisibleKHR|NonPrivatePointerKHR",
- "MakePointerVisibleKHR|NonPrivatePointerKHR");
+ std::string spirv = GenCoopMatLoadStoreShaderKHR(
+ "MakePointerVisibleKHR|NonPrivatePointerKHR",
+ "MakePointerVisibleKHR|NonPrivatePointerKHR");
CompileSuccessfully(spirv.c_str(), SPV_ENV_VULKAN_1_1);
ASSERT_EQ(SPV_ERROR_INVALID_ID, ValidateInstructions(SPV_ENV_VULKAN_1_1));
@@ -2369,9 +2559,9 @@ TEST_F(ValidateMemory, CoopMatKHRStoreMemoryAccessFail) {
}
TEST_F(ValidateMemory, CoopMatKHRLoadMemoryAccessFail) {
- std::string spirv =
- GenCoopMatLoadStoreShader("MakePointerAvailableKHR|NonPrivatePointerKHR",
- "MakePointerAvailableKHR|NonPrivatePointerKHR");
+ std::string spirv = GenCoopMatLoadStoreShaderKHR(
+ "MakePointerAvailableKHR|NonPrivatePointerKHR",
+ "MakePointerAvailableKHR|NonPrivatePointerKHR");
CompileSuccessfully(spirv.c_str(), SPV_ENV_VULKAN_1_1);
ASSERT_EQ(SPV_ERROR_INVALID_ID, ValidateInstructions(SPV_ENV_VULKAN_1_1));
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.cppm b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.cppm
index 6d7c8a6762..99442d63fe 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.cppm
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.cppm
@@ -2387,6 +2387,10 @@ export namespace VULKAN_HPP_NAMESPACE
using VULKAN_HPP_NAMESPACE::EXTMutableDescriptorTypeExtensionName;
using VULKAN_HPP_NAMESPACE::EXTMutableDescriptorTypeSpecVersion;
+ //=== VK_EXT_legacy_vertex_attributes ===
+ using VULKAN_HPP_NAMESPACE::EXTLegacyVertexAttributesExtensionName;
+ using VULKAN_HPP_NAMESPACE::EXTLegacyVertexAttributesSpecVersion;
+
//=== VK_EXT_layer_settings ===
using VULKAN_HPP_NAMESPACE::EXTLayerSettingsExtensionName;
using VULKAN_HPP_NAMESPACE::EXTLayerSettingsSpecVersion;
@@ -2506,6 +2510,10 @@ export namespace VULKAN_HPP_NAMESPACE
using VULKAN_HPP_NAMESPACE::NVRayTracingValidationExtensionName;
using VULKAN_HPP_NAMESPACE::NVRayTracingValidationSpecVersion;
+ //=== VK_MESA_image_alignment_control ===
+ using VULKAN_HPP_NAMESPACE::MESAImageAlignmentControlExtensionName;
+ using VULKAN_HPP_NAMESPACE::MESAImageAlignmentControlSpecVersion;
+
//========================
//=== CONSTEXPR VALUEs ===
//========================
@@ -4218,6 +4226,10 @@ export namespace VULKAN_HPP_NAMESPACE
using VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
using VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
+ //=== VK_EXT_legacy_vertex_attributes ===
+ using VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+ using VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+
//=== VK_EXT_layer_settings ===
using VULKAN_HPP_NAMESPACE::LayerSettingEXT;
using VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT;
@@ -4352,6 +4364,11 @@ export namespace VULKAN_HPP_NAMESPACE
//=== VK_NV_ray_tracing_validation ===
using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV;
+ //=== VK_MESA_image_alignment_control ===
+ using VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA;
+ using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA;
+ using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA;
+
//===============
//=== HANDLEs ===
//===============
@@ -4675,7 +4692,7 @@ export namespace VULKAN_HPP_NAMESPACE
using VULKAN_HPP_NAMESPACE::StructExtends;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-#if defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
+#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
using VULKAN_HPP_NAMESPACE::DynamicLoader;
#endif /*VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL*/
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp
index eae7cc3398..2e7c582975 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.hpp
@@ -56,7 +56,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <span>
#endif
-static_assert( VK_HEADER_VERSION == 283, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 285, "Wrong VK_HEADER_VERSION!" );
// <tuple> includes <sys/sysmacros.h> through some other header
// this results in major(x) being resolved to gnu_dev_major(x)
@@ -6144,7 +6144,7 @@ namespace VULKAN_HPP_NAMESPACE
using RemoteAddressNV = void *;
using SampleMask = uint32_t;
- template <typename Type, Type value = 0>
+ template <typename Type, Type value = Type{}>
struct CppType
{
};
@@ -8566,6 +8566,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeExtensionName = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME;
VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeSpecVersion = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION;
+ //=== VK_EXT_legacy_vertex_attributes ===
+ VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyVertexAttributesExtensionName = VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME;
+ VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyVertexAttributesSpecVersion = VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION;
+
//=== VK_EXT_layer_settings ===
VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsExtensionName = VK_EXT_LAYER_SETTINGS_EXTENSION_NAME;
VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsSpecVersion = VK_EXT_LAYER_SETTINGS_SPEC_VERSION;
@@ -8684,6 +8688,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingValidationExtensionName = VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME;
VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingValidationSpecVersion = VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION;
+ //=== VK_MESA_image_alignment_control ===
+ VULKAN_HPP_CONSTEXPR_INLINE auto MESAImageAlignmentControlExtensionName = VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME;
+ VULKAN_HPP_CONSTEXPR_INLINE auto MESAImageAlignmentControlSpecVersion = VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION;
+
} // namespace VULKAN_HPP_NAMESPACE
// clang-format off
@@ -15923,6 +15931,34 @@ namespace VULKAN_HPP_NAMESPACE
};
};
+ //=== VK_EXT_legacy_vertex_attributes ===
+ template <>
+ struct StructExtends<PhysicalDeviceLegacyVertexAttributesFeaturesEXT, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ template <>
+ struct StructExtends<PhysicalDeviceLegacyVertexAttributesFeaturesEXT, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ template <>
+ struct StructExtends<PhysicalDeviceLegacyVertexAttributesPropertiesEXT, PhysicalDeviceProperties2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
//=== VK_EXT_layer_settings ===
template <>
struct StructExtends<LayerSettingsCreateInfoEXT, InstanceCreateInfo>
@@ -16672,6 +16708,43 @@ namespace VULKAN_HPP_NAMESPACE
};
};
+ //=== VK_MESA_image_alignment_control ===
+ template <>
+ struct StructExtends<PhysicalDeviceImageAlignmentControlFeaturesMESA, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ template <>
+ struct StructExtends<PhysicalDeviceImageAlignmentControlFeaturesMESA, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ template <>
+ struct StructExtends<PhysicalDeviceImageAlignmentControlPropertiesMESA, PhysicalDeviceProperties2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
+ template <>
+ struct StructExtends<ImageAlignmentControlCreateInfoMESA, ImageCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
#endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h
index 114c0950d3..38468f266d 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h
@@ -69,7 +69,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 283
+#define VK_HEADER_VERSION 285
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -1046,6 +1046,8 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
@@ -1112,6 +1114,9 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
+ VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -18729,6 +18734,24 @@ typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
+// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_legacy_vertex_attributes 1
+#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
+#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
+typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 legacyVertexAttributes;
+} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+
+typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 nativeUnalignedPerformance;
+} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+
+
+
// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
#define VK_EXT_layer_settings 1
#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
@@ -19149,6 +19172,30 @@ typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
+// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
+#define VK_MESA_image_alignment_control 1
+#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
+#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
+typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 imageAlignmentControl;
+} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
+
+typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t supportedImageAlignmentMask;
+} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
+
+typedef struct VkImageAlignmentControlCreateInfoMESA {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t maximumRequestedAlignment;
+} VkImageAlignmentControlCreateInfoMESA;
+
+
+
// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
#define VK_KHR_acceleration_structure 1
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp
index 2aaf68c7f5..9d617521d2 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_enums.hpp
@@ -1343,6 +1343,8 @@ namespace VULKAN_HPP_NAMESPACE
ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
eMutableDescriptorTypeCreateInfoEXT = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
+ ePhysicalDeviceLegacyVertexAttributesFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT,
+ ePhysicalDeviceLegacyVertexAttributesPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT,
eLayerSettingsCreateInfoEXT = VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT,
ePhysicalDeviceShaderCoreBuiltinsFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
ePhysicalDeviceShaderCoreBuiltinsPropertiesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
@@ -1417,7 +1419,10 @@ namespace VULKAN_HPP_NAMESPACE
ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV,
ePhysicalDeviceRawAccessChainsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV,
ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV,
- ePhysicalDeviceRayTracingValidationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
+ ePhysicalDeviceRayTracingValidationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV,
+ ePhysicalDeviceImageAlignmentControlFeaturesMESA = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA,
+ ePhysicalDeviceImageAlignmentControlPropertiesMESA = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA,
+ eImageAlignmentControlCreateInfoMESA = VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
};
enum class PipelineCacheHeaderVersion
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_extension_inspection.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_extension_inspection.hpp
index d9df2f6d20..30d42b339d 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_extension_inspection.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_extension_inspection.hpp
@@ -407,6 +407,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_NV_ray_tracing_invocation_reorder",
"VK_NV_extended_sparse_address_space",
"VK_EXT_mutable_descriptor_type",
+ "VK_EXT_legacy_vertex_attributes",
"VK_ARM_shader_core_builtins",
"VK_EXT_pipeline_library_group_handles",
"VK_EXT_dynamic_rendering_unused_attachments",
@@ -436,7 +437,8 @@ namespace VULKAN_HPP_NAMESPACE
"VK_NV_descriptor_pool_overallocation",
"VK_NV_raw_access_chains",
"VK_NV_shader_atomic_float16_vector",
- "VK_NV_ray_tracing_validation"
+ "VK_NV_ray_tracing_validation",
+ "VK_MESA_image_alignment_control"
};
return deviceExtensions;
}
@@ -2173,6 +2175,11 @@ namespace VULKAN_HPP_NAMESPACE
{ {
"VK_KHR_maintenance3",
} } } } },
+ { "VK_EXT_legacy_vertex_attributes",
+ { { "VK_VERSION_1_0",
+ { {
+ "VK_EXT_vertex_input_dynamic_state",
+ } } } } },
{ "VK_ARM_shader_core_builtins",
{ { "VK_VERSION_1_0",
{ {
@@ -2306,7 +2313,13 @@ namespace VULKAN_HPP_NAMESPACE
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_maintenance6", { { "VK_VERSION_1_1", { {} } } } },
- { "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { {} } } } }
+ { "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { {} } } } },
+ { "VK_MESA_image_alignment_control",
+ { { "VK_VERSION_1_0",
+ { {
+ "VK_KHR_get_physical_device_properties2",
+ } } },
+ { "VK_VERSION_1_1", { {} } } } }
};
auto depIt = dependencies.find( extension );
return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
@@ -3055,21 +3068,23 @@ namespace VULKAN_HPP_NAMESPACE
|| ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) ||
( extension == "VK_QCOM_tile_properties" ) || ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) ||
( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_NV_extended_sparse_address_space" ) ||
- ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_ARM_shader_core_builtins" ) ||
- ( extension == "VK_EXT_pipeline_library_group_handles" ) || ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) ||
- ( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) ||
- ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_KHR_video_decode_av1" ) ||
- ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) || ( extension == "VK_QCOM_image_processing2" ) ||
- ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) ||
- ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) ||
- ( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_shader_float_controls2" )
+ ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_EXT_legacy_vertex_attributes" ) ||
+ ( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) ||
+ ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_NV_low_latency2" ) ||
+ ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_QCOM_multiview_per_view_render_areas" ) ||
+ ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) ||
+ ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) ||
+ ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) ||
+ ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) ||
+ ( extension == "VK_KHR_shader_float_controls2" )
#if defined( VK_USE_PLATFORM_SCREEN_QNX )
|| ( extension == "VK_QNX_external_memory_screen_buffer" )
#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
|| ( extension == "VK_MSFT_layered_driver" ) || ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_line_rasterization" ) ||
( extension == "VK_KHR_calibrated_timestamps" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) ||
( extension == "VK_NV_descriptor_pool_overallocation" ) || ( extension == "VK_NV_raw_access_chains" ) ||
- ( extension == "VK_NV_shader_atomic_float16_vector" ) || ( extension == "VK_NV_ray_tracing_validation" );
+ ( extension == "VK_NV_shader_atomic_float16_vector" ) || ( extension == "VK_NV_ray_tracing_validation" ) ||
+ ( extension == "VK_MESA_image_alignment_control" );
}
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp
index 3b360dca78..b60a21f7c2 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_handles.hpp
@@ -1695,6 +1695,10 @@ namespace VULKAN_HPP_NAMESPACE
struct MutableDescriptorTypeCreateInfoEXT;
using MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
+ //=== VK_EXT_legacy_vertex_attributes ===
+ struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+ struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+
//=== VK_EXT_layer_settings ===
struct LayerSettingsCreateInfoEXT;
struct LayerSettingEXT;
@@ -1829,6 +1833,11 @@ namespace VULKAN_HPP_NAMESPACE
//=== VK_NV_ray_tracing_validation ===
struct PhysicalDeviceRayTracingValidationFeaturesNV;
+ //=== VK_MESA_image_alignment_control ===
+ struct PhysicalDeviceImageAlignmentControlFeaturesMESA;
+ struct PhysicalDeviceImageAlignmentControlPropertiesMESA;
+ struct ImageAlignmentControlCreateInfoMESA;
+
//===================================
//=== HANDLE forward declarations ===
//===================================
@@ -2407,7 +2416,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
public:
- VULKAN_HPP_CONSTEXPR SurfaceKHR() = default;
+ SurfaceKHR() = default;
+ SurfaceKHR( SurfaceKHR const & rhs ) = default;
+ SurfaceKHR & operator=( SurfaceKHR const & rhs ) = default;
+ SurfaceKHR( SurfaceKHR && rhs ) = default;
+ SurfaceKHR & operator=( SurfaceKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2502,7 +2515,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
public:
- VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() = default;
+ DebugReportCallbackEXT() = default;
+ DebugReportCallbackEXT( DebugReportCallbackEXT const & rhs ) = default;
+ DebugReportCallbackEXT & operator=( DebugReportCallbackEXT const & rhs ) = default;
+ DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) = default;
+ DebugReportCallbackEXT & operator=( DebugReportCallbackEXT && rhs ) = default;
VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2600,7 +2617,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() = default;
+ DebugUtilsMessengerEXT() = default;
+ DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & rhs ) = default;
+ DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT const & rhs ) = default;
+ DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) = default;
+ DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT && rhs ) = default;
VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2692,7 +2713,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
public:
- VULKAN_HPP_CONSTEXPR DisplayKHR() = default;
+ DisplayKHR() = default;
+ DisplayKHR( DisplayKHR const & rhs ) = default;
+ DisplayKHR & operator=( DisplayKHR const & rhs ) = default;
+ DisplayKHR( DisplayKHR && rhs ) = default;
+ DisplayKHR & operator=( DisplayKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2787,7 +2812,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
public:
- VULKAN_HPP_CONSTEXPR SwapchainKHR() = default;
+ SwapchainKHR() = default;
+ SwapchainKHR( SwapchainKHR const & rhs ) = default;
+ SwapchainKHR & operator=( SwapchainKHR const & rhs ) = default;
+ SwapchainKHR( SwapchainKHR && rhs ) = default;
+ SwapchainKHR & operator=( SwapchainKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2882,7 +2911,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
public:
- VULKAN_HPP_CONSTEXPR Semaphore() = default;
+ Semaphore() = default;
+ Semaphore( Semaphore const & rhs ) = default;
+ Semaphore & operator=( Semaphore const & rhs ) = default;
+ Semaphore( Semaphore && rhs ) = default;
+ Semaphore & operator=( Semaphore && rhs ) = default;
VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -2977,7 +3010,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
public:
- VULKAN_HPP_CONSTEXPR Fence() = default;
+ Fence() = default;
+ Fence( Fence const & rhs ) = default;
+ Fence & operator=( Fence const & rhs ) = default;
+ Fence( Fence && rhs ) = default;
+ Fence & operator=( Fence && rhs ) = default;
VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3072,7 +3109,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() = default;
+ PerformanceConfigurationINTEL() = default;
+ PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & rhs ) = default;
+ PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL const & rhs ) = default;
+ PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) = default;
+ PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL && rhs ) = default;
VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3164,7 +3205,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
public:
- VULKAN_HPP_CONSTEXPR QueryPool() = default;
+ QueryPool() = default;
+ QueryPool( QueryPool const & rhs ) = default;
+ QueryPool & operator=( QueryPool const & rhs ) = default;
+ QueryPool( QueryPool && rhs ) = default;
+ QueryPool & operator=( QueryPool && rhs ) = default;
VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3259,7 +3304,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
public:
- VULKAN_HPP_CONSTEXPR Buffer() = default;
+ Buffer() = default;
+ Buffer( Buffer const & rhs ) = default;
+ Buffer & operator=( Buffer const & rhs ) = default;
+ Buffer( Buffer && rhs ) = default;
+ Buffer & operator=( Buffer && rhs ) = default;
VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3354,7 +3403,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
public:
- VULKAN_HPP_CONSTEXPR PipelineLayout() = default;
+ PipelineLayout() = default;
+ PipelineLayout( PipelineLayout const & rhs ) = default;
+ PipelineLayout & operator=( PipelineLayout const & rhs ) = default;
+ PipelineLayout( PipelineLayout && rhs ) = default;
+ PipelineLayout & operator=( PipelineLayout && rhs ) = default;
VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3449,7 +3502,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
public:
- VULKAN_HPP_CONSTEXPR DescriptorSet() = default;
+ DescriptorSet() = default;
+ DescriptorSet( DescriptorSet const & rhs ) = default;
+ DescriptorSet & operator=( DescriptorSet const & rhs ) = default;
+ DescriptorSet( DescriptorSet && rhs ) = default;
+ DescriptorSet & operator=( DescriptorSet && rhs ) = default;
VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3544,7 +3601,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
public:
- VULKAN_HPP_CONSTEXPR ImageView() = default;
+ ImageView() = default;
+ ImageView( ImageView const & rhs ) = default;
+ ImageView & operator=( ImageView const & rhs ) = default;
+ ImageView( ImageView && rhs ) = default;
+ ImageView & operator=( ImageView && rhs ) = default;
VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3639,7 +3700,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
public:
- VULKAN_HPP_CONSTEXPR Pipeline() = default;
+ Pipeline() = default;
+ Pipeline( Pipeline const & rhs ) = default;
+ Pipeline & operator=( Pipeline const & rhs ) = default;
+ Pipeline( Pipeline && rhs ) = default;
+ Pipeline & operator=( Pipeline && rhs ) = default;
VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3734,7 +3799,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR ShaderEXT() = default;
+ ShaderEXT() = default;
+ ShaderEXT( ShaderEXT const & rhs ) = default;
+ ShaderEXT & operator=( ShaderEXT const & rhs ) = default;
+ ShaderEXT( ShaderEXT && rhs ) = default;
+ ShaderEXT & operator=( ShaderEXT && rhs ) = default;
VULKAN_HPP_CONSTEXPR ShaderEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3823,7 +3892,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
public:
- VULKAN_HPP_CONSTEXPR Image() = default;
+ Image() = default;
+ Image( Image const & rhs ) = default;
+ Image & operator=( Image const & rhs ) = default;
+ Image( Image && rhs ) = default;
+ Image & operator=( Image && rhs ) = default;
VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -3918,7 +3991,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
public:
- VULKAN_HPP_CONSTEXPR AccelerationStructureNV() = default;
+ AccelerationStructureNV() = default;
+ AccelerationStructureNV( AccelerationStructureNV const & rhs ) = default;
+ AccelerationStructureNV & operator=( AccelerationStructureNV const & rhs ) = default;
+ AccelerationStructureNV( AccelerationStructureNV && rhs ) = default;
+ AccelerationStructureNV & operator=( AccelerationStructureNV && rhs ) = default;
VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4016,7 +4093,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR OpticalFlowSessionNV() = default;
+ OpticalFlowSessionNV() = default;
+ OpticalFlowSessionNV( OpticalFlowSessionNV const & rhs ) = default;
+ OpticalFlowSessionNV & operator=( OpticalFlowSessionNV const & rhs ) = default;
+ OpticalFlowSessionNV( OpticalFlowSessionNV && rhs ) = default;
+ OpticalFlowSessionNV & operator=( OpticalFlowSessionNV && rhs ) = default;
VULKAN_HPP_CONSTEXPR OpticalFlowSessionNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4108,7 +4189,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
public:
- VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() = default;
+ DescriptorUpdateTemplate() = default;
+ DescriptorUpdateTemplate( DescriptorUpdateTemplate const & rhs ) = default;
+ DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate const & rhs ) = default;
+ DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) = default;
+ DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate && rhs ) = default;
VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4208,7 +4293,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
public:
- VULKAN_HPP_CONSTEXPR Event() = default;
+ Event() = default;
+ Event( Event const & rhs ) = default;
+ Event & operator=( Event const & rhs ) = default;
+ Event( Event && rhs ) = default;
+ Event & operator=( Event && rhs ) = default;
VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4303,7 +4392,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
public:
- VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() = default;
+ AccelerationStructureKHR() = default;
+ AccelerationStructureKHR( AccelerationStructureKHR const & rhs ) = default;
+ AccelerationStructureKHR & operator=( AccelerationStructureKHR const & rhs ) = default;
+ AccelerationStructureKHR( AccelerationStructureKHR && rhs ) = default;
+ AccelerationStructureKHR & operator=( AccelerationStructureKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4401,7 +4494,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR MicromapEXT() = default;
+ MicromapEXT() = default;
+ MicromapEXT( MicromapEXT const & rhs ) = default;
+ MicromapEXT & operator=( MicromapEXT const & rhs ) = default;
+ MicromapEXT( MicromapEXT && rhs ) = default;
+ MicromapEXT & operator=( MicromapEXT && rhs ) = default;
VULKAN_HPP_CONSTEXPR MicromapEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -4490,7 +4587,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
public:
- VULKAN_HPP_CONSTEXPR CommandBuffer() = default;
+ CommandBuffer() = default;
+ CommandBuffer( CommandBuffer const & rhs ) = default;
+ CommandBuffer & operator=( CommandBuffer const & rhs ) = default;
+ CommandBuffer( CommandBuffer && rhs ) = default;
+ CommandBuffer & operator=( CommandBuffer && rhs ) = default;
VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -6886,7 +6987,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
public:
- VULKAN_HPP_CONSTEXPR DeviceMemory() = default;
+ DeviceMemory() = default;
+ DeviceMemory( DeviceMemory const & rhs ) = default;
+ DeviceMemory & operator=( DeviceMemory const & rhs ) = default;
+ DeviceMemory( DeviceMemory && rhs ) = default;
+ DeviceMemory & operator=( DeviceMemory && rhs ) = default;
VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -6981,7 +7086,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR VideoSessionKHR() = default;
+ VideoSessionKHR() = default;
+ VideoSessionKHR( VideoSessionKHR const & rhs ) = default;
+ VideoSessionKHR & operator=( VideoSessionKHR const & rhs ) = default;
+ VideoSessionKHR( VideoSessionKHR && rhs ) = default;
+ VideoSessionKHR & operator=( VideoSessionKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR VideoSessionKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7070,7 +7179,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR DeferredOperationKHR() = default;
+ DeferredOperationKHR() = default;
+ DeferredOperationKHR( DeferredOperationKHR const & rhs ) = default;
+ DeferredOperationKHR & operator=( DeferredOperationKHR const & rhs ) = default;
+ DeferredOperationKHR( DeferredOperationKHR && rhs ) = default;
+ DeferredOperationKHR & operator=( DeferredOperationKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7163,7 +7276,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
public:
- VULKAN_HPP_CONSTEXPR BufferCollectionFUCHSIA() = default;
+ BufferCollectionFUCHSIA() = default;
+ BufferCollectionFUCHSIA( BufferCollectionFUCHSIA const & rhs ) = default;
+ BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA const & rhs ) = default;
+ BufferCollectionFUCHSIA( BufferCollectionFUCHSIA && rhs ) = default;
+ BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA && rhs ) = default;
VULKAN_HPP_CONSTEXPR BufferCollectionFUCHSIA( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7262,7 +7379,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
public:
- VULKAN_HPP_CONSTEXPR BufferView() = default;
+ BufferView() = default;
+ BufferView( BufferView const & rhs ) = default;
+ BufferView & operator=( BufferView const & rhs ) = default;
+ BufferView( BufferView && rhs ) = default;
+ BufferView & operator=( BufferView && rhs ) = default;
VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7357,7 +7478,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
public:
- VULKAN_HPP_CONSTEXPR CommandPool() = default;
+ CommandPool() = default;
+ CommandPool( CommandPool const & rhs ) = default;
+ CommandPool & operator=( CommandPool const & rhs ) = default;
+ CommandPool( CommandPool && rhs ) = default;
+ CommandPool & operator=( CommandPool && rhs ) = default;
VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7452,7 +7577,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
public:
- VULKAN_HPP_CONSTEXPR PipelineCache() = default;
+ PipelineCache() = default;
+ PipelineCache( PipelineCache const & rhs ) = default;
+ PipelineCache & operator=( PipelineCache const & rhs ) = default;
+ PipelineCache( PipelineCache && rhs ) = default;
+ PipelineCache & operator=( PipelineCache && rhs ) = default;
VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7547,7 +7676,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
public:
- VULKAN_HPP_CONSTEXPR CuFunctionNVX() = default;
+ CuFunctionNVX() = default;
+ CuFunctionNVX( CuFunctionNVX const & rhs ) = default;
+ CuFunctionNVX & operator=( CuFunctionNVX const & rhs ) = default;
+ CuFunctionNVX( CuFunctionNVX && rhs ) = default;
+ CuFunctionNVX & operator=( CuFunctionNVX && rhs ) = default;
VULKAN_HPP_CONSTEXPR CuFunctionNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7642,7 +7775,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
public:
- VULKAN_HPP_CONSTEXPR CuModuleNVX() = default;
+ CuModuleNVX() = default;
+ CuModuleNVX( CuModuleNVX const & rhs ) = default;
+ CuModuleNVX & operator=( CuModuleNVX const & rhs ) = default;
+ CuModuleNVX( CuModuleNVX && rhs ) = default;
+ CuModuleNVX & operator=( CuModuleNVX && rhs ) = default;
VULKAN_HPP_CONSTEXPR CuModuleNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7738,7 +7875,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
public:
- VULKAN_HPP_CONSTEXPR CudaFunctionNV() = default;
+ CudaFunctionNV() = default;
+ CudaFunctionNV( CudaFunctionNV const & rhs ) = default;
+ CudaFunctionNV & operator=( CudaFunctionNV const & rhs ) = default;
+ CudaFunctionNV( CudaFunctionNV && rhs ) = default;
+ CudaFunctionNV & operator=( CudaFunctionNV && rhs ) = default;
VULKAN_HPP_CONSTEXPR CudaFunctionNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7835,7 +7976,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
public:
- VULKAN_HPP_CONSTEXPR CudaModuleNV() = default;
+ CudaModuleNV() = default;
+ CudaModuleNV( CudaModuleNV const & rhs ) = default;
+ CudaModuleNV & operator=( CudaModuleNV const & rhs ) = default;
+ CudaModuleNV( CudaModuleNV && rhs ) = default;
+ CudaModuleNV & operator=( CudaModuleNV && rhs ) = default;
VULKAN_HPP_CONSTEXPR CudaModuleNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -7931,7 +8076,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
public:
- VULKAN_HPP_CONSTEXPR DescriptorPool() = default;
+ DescriptorPool() = default;
+ DescriptorPool( DescriptorPool const & rhs ) = default;
+ DescriptorPool & operator=( DescriptorPool const & rhs ) = default;
+ DescriptorPool( DescriptorPool && rhs ) = default;
+ DescriptorPool & operator=( DescriptorPool && rhs ) = default;
VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8026,7 +8175,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
public:
- VULKAN_HPP_CONSTEXPR DescriptorSetLayout() = default;
+ DescriptorSetLayout() = default;
+ DescriptorSetLayout( DescriptorSetLayout const & rhs ) = default;
+ DescriptorSetLayout & operator=( DescriptorSetLayout const & rhs ) = default;
+ DescriptorSetLayout( DescriptorSetLayout && rhs ) = default;
+ DescriptorSetLayout & operator=( DescriptorSetLayout && rhs ) = default;
VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8124,7 +8277,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
public:
- VULKAN_HPP_CONSTEXPR Framebuffer() = default;
+ Framebuffer() = default;
+ Framebuffer( Framebuffer const & rhs ) = default;
+ Framebuffer & operator=( Framebuffer const & rhs ) = default;
+ Framebuffer( Framebuffer && rhs ) = default;
+ Framebuffer & operator=( Framebuffer && rhs ) = default;
VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8219,7 +8376,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() = default;
+ IndirectCommandsLayoutNV() = default;
+ IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & rhs ) = default;
+ IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV const & rhs ) = default;
+ IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) = default;
+ IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV && rhs ) = default;
VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8311,7 +8472,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR PrivateDataSlot() = default;
+ PrivateDataSlot() = default;
+ PrivateDataSlot( PrivateDataSlot const & rhs ) = default;
+ PrivateDataSlot & operator=( PrivateDataSlot const & rhs ) = default;
+ PrivateDataSlot( PrivateDataSlot && rhs ) = default;
+ PrivateDataSlot & operator=( PrivateDataSlot && rhs ) = default;
VULKAN_HPP_CONSTEXPR PrivateDataSlot( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8402,7 +8567,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
public:
- VULKAN_HPP_CONSTEXPR RenderPass() = default;
+ RenderPass() = default;
+ RenderPass( RenderPass const & rhs ) = default;
+ RenderPass & operator=( RenderPass const & rhs ) = default;
+ RenderPass( RenderPass && rhs ) = default;
+ RenderPass & operator=( RenderPass && rhs ) = default;
VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8497,7 +8666,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
public:
- VULKAN_HPP_CONSTEXPR Sampler() = default;
+ Sampler() = default;
+ Sampler( Sampler const & rhs ) = default;
+ Sampler & operator=( Sampler const & rhs ) = default;
+ Sampler( Sampler && rhs ) = default;
+ Sampler & operator=( Sampler && rhs ) = default;
VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8592,7 +8765,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
public:
- VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() = default;
+ SamplerYcbcrConversion() = default;
+ SamplerYcbcrConversion( SamplerYcbcrConversion const & rhs ) = default;
+ SamplerYcbcrConversion & operator=( SamplerYcbcrConversion const & rhs ) = default;
+ SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) = default;
+ SamplerYcbcrConversion & operator=( SamplerYcbcrConversion && rhs ) = default;
VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8692,7 +8869,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
public:
- VULKAN_HPP_CONSTEXPR ShaderModule() = default;
+ ShaderModule() = default;
+ ShaderModule( ShaderModule const & rhs ) = default;
+ ShaderModule & operator=( ShaderModule const & rhs ) = default;
+ ShaderModule( ShaderModule && rhs ) = default;
+ ShaderModule & operator=( ShaderModule && rhs ) = default;
VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8787,7 +8968,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
public:
- VULKAN_HPP_CONSTEXPR ValidationCacheEXT() = default;
+ ValidationCacheEXT() = default;
+ ValidationCacheEXT( ValidationCacheEXT const & rhs ) = default;
+ ValidationCacheEXT & operator=( ValidationCacheEXT const & rhs ) = default;
+ ValidationCacheEXT( ValidationCacheEXT && rhs ) = default;
+ ValidationCacheEXT & operator=( ValidationCacheEXT && rhs ) = default;
VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8884,7 +9069,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
- VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR() = default;
+ VideoSessionParametersKHR() = default;
+ VideoSessionParametersKHR( VideoSessionParametersKHR const & rhs ) = default;
+ VideoSessionParametersKHR & operator=( VideoSessionParametersKHR const & rhs ) = default;
+ VideoSessionParametersKHR( VideoSessionParametersKHR && rhs ) = default;
+ VideoSessionParametersKHR & operator=( VideoSessionParametersKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -8976,7 +9165,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
public:
- VULKAN_HPP_CONSTEXPR Queue() = default;
+ Queue() = default;
+ Queue( Queue const & rhs ) = default;
+ Queue & operator=( Queue const & rhs ) = default;
+ Queue( Queue && rhs ) = default;
+ Queue & operator=( Queue && rhs ) = default;
VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -9229,7 +9422,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
public:
- VULKAN_HPP_CONSTEXPR Device() = default;
+ Device() = default;
+ Device( Device const & rhs ) = default;
+ Device & operator=( Device const & rhs ) = default;
+ Device( Device && rhs ) = default;
+ Device & operator=( Device && rhs ) = default;
VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -14375,7 +14572,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
public:
- VULKAN_HPP_CONSTEXPR DisplayModeKHR() = default;
+ DisplayModeKHR() = default;
+ DisplayModeKHR( DisplayModeKHR const & rhs ) = default;
+ DisplayModeKHR & operator=( DisplayModeKHR const & rhs ) = default;
+ DisplayModeKHR( DisplayModeKHR && rhs ) = default;
+ DisplayModeKHR & operator=( DisplayModeKHR && rhs ) = default;
VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -14470,7 +14671,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
public:
- VULKAN_HPP_CONSTEXPR PhysicalDevice() = default;
+ PhysicalDevice() = default;
+ PhysicalDevice( PhysicalDevice const & rhs ) = default;
+ PhysicalDevice & operator=( PhysicalDevice const & rhs ) = default;
+ PhysicalDevice( PhysicalDevice && rhs ) = default;
+ PhysicalDevice & operator=( PhysicalDevice && rhs ) = default;
VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
@@ -15900,7 +16105,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
public:
- VULKAN_HPP_CONSTEXPR Instance() = default;
+ Instance() = default;
+ Instance( Instance const & rhs ) = default;
+ Instance & operator=( Instance const & rhs ) = default;
+ Instance( Instance && rhs ) = default;
+ Instance & operator=( Instance && rhs ) = default;
VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp
index 8adf25773e..3840c8cdc1 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_hash.hpp
@@ -5638,6 +5638,19 @@ namespace std
# endif /*VK_USE_PLATFORM_IOS_MVK*/
template <>
+ struct hash<VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA const & imageAlignmentControlCreateInfoMESA ) const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, imageAlignmentControlCreateInfoMESA.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, imageAlignmentControlCreateInfoMESA.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, imageAlignmentControlCreateInfoMESA.maximumRequestedAlignment );
+ return seed;
+ }
+ };
+
+ template <>
struct hash<VULKAN_HPP_NAMESPACE::ImageBlit>
{
std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageBlit const & imageBlit ) const VULKAN_HPP_NOEXCEPT
@@ -9117,6 +9130,34 @@ namespace std
};
template <>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA>
+ {
+ std::size_t operator()(
+ VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA const & physicalDeviceImageAlignmentControlFeaturesMESA ) const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlFeaturesMESA.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlFeaturesMESA.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlFeaturesMESA.imageAlignmentControl );
+ return seed;
+ }
+ };
+
+ template <>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA const & physicalDeviceImageAlignmentControlPropertiesMESA )
+ const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlPropertiesMESA.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlPropertiesMESA.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageAlignmentControlPropertiesMESA.supportedImageAlignmentMask );
+ return seed;
+ }
+ };
+
+ template <>
struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT>
{
std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const & physicalDeviceImageCompressionControlFeaturesEXT )
@@ -9413,6 +9454,34 @@ namespace std
};
template <>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT>
+ {
+ std::size_t operator()(
+ VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & physicalDeviceLegacyVertexAttributesFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesFeaturesEXT.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesFeaturesEXT.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesFeaturesEXT.legacyVertexAttributes );
+ return seed;
+ }
+ };
+
+ template <>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & physicalDeviceLegacyVertexAttributesPropertiesEXT )
+ const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesPropertiesEXT.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesPropertiesEXT.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyVertexAttributesPropertiesEXT.nativeUnalignedPerformance );
+ return seed;
+ }
+ };
+
+ template <>
struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits>
{
std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const & physicalDeviceLimits ) const VULKAN_HPP_NOEXCEPT
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp
index 5d05edb94a..f787e04730 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_raii.hpp
@@ -12904,7 +12904,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
@@ -12964,7 +12964,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
}
VULKAN_HPP_NODISCARD
@@ -17844,7 +17844,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX Pipeline::getExecutionGraphScratchSizeAMDX() const
@@ -18436,7 +18436,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
}
template <typename DataType>
@@ -18927,7 +18927,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result );
}
template <typename DataType>
@@ -22574,7 +22574,7 @@ namespace VULKAN_HPP_NAMESPACE
# endif
}
- return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator );
+ return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator, result );
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ShaderEXT::getBinaryData() const
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_static_assertions.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_static_assertions.hpp
index 693977cfef..3c520a4424 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_static_assertions.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_static_assertions.hpp
@@ -105,6 +105,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"ImageFormatProperties is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Instance>::value, "Instance is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Instance>::value, "Instance is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
@@ -121,6 +122,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MemoryTy
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MemoryType>::value, "MemoryType is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevice>::value, "PhysicalDevice is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevice>::value,
"PhysicalDevice is not nothrow_move_constructible!" );
@@ -160,6 +162,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"QueueFamilyProperties is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Device>::value, "Device is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Device>::value, "Device is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
@@ -184,6 +187,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"LayerProperties is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Queue>::value, "Queue is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Queue>::value, "Queue is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
@@ -201,6 +205,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"MemoryAllocateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DeviceMemory>::value, "DeviceMemory is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeviceMemory>::value, "DeviceMemory is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
@@ -260,6 +265,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"SparseMemoryBind is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Fence>::value, "Fence is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Fence>::value, "Fence is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
@@ -268,6 +274,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"FenceCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Semaphore>::value, "Semaphore is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Semaphore>::value, "Semaphore is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
@@ -276,6 +283,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"SemaphoreCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Event>::value, "Event is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Event>::value, "Event is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
@@ -284,6 +292,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"EventCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::QueryPool>::value, "QueryPool is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::QueryPool>::value, "QueryPool is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
@@ -292,6 +301,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"QueryPoolCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Buffer>::value, "Buffer is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Buffer>::value, "Buffer is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
@@ -300,6 +310,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"BufferCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::BufferView>::value, "BufferView is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferView>::value, "BufferView is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
@@ -308,6 +319,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"BufferViewCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Image>::value, "Image is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Image>::value, "Image is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
@@ -332,6 +344,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"ImageSubresourceRange is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::ImageView>::value, "ImageView is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageView>::value, "ImageView is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
@@ -340,6 +353,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"ImageViewCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::ShaderModule>::value, "ShaderModule is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ShaderModule>::value, "ShaderModule is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ),
@@ -349,6 +363,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"ShaderModuleCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::PipelineCache>::value, "PipelineCache is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineCache>::value, "PipelineCache is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ),
@@ -370,6 +385,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"GraphicsPipelineCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Pipeline>::value, "Pipeline is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Pipeline>::value, "Pipeline is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ),
@@ -477,6 +493,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Viewport
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Viewport>::value, "Viewport is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::PipelineLayout>::value, "PipelineLayout is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineLayout>::value,
"PipelineLayout is not nothrow_move_constructible!" );
@@ -492,6 +509,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"PushConstantRange is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Sampler>::value, "Sampler is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Sampler>::value, "Sampler is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
@@ -515,6 +533,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"DescriptorImageInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DescriptorPool>::value, "DescriptorPool is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DescriptorPool>::value,
"DescriptorPool is not nothrow_move_constructible!" );
@@ -530,6 +549,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"DescriptorPoolSize is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DescriptorSet>::value, "DescriptorSet is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DescriptorSet>::value, "DescriptorSet is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ),
@@ -539,6 +559,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"DescriptorSetAllocateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::value, "DescriptorSetLayout is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::value,
"DescriptorSetLayout is not nothrow_move_constructible!" );
@@ -571,6 +592,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"AttachmentReference is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::Framebuffer>::value, "Framebuffer is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::Framebuffer>::value, "Framebuffer is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ),
@@ -580,6 +602,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"FramebufferCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::RenderPass>::value, "RenderPass is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::RenderPass>::value, "RenderPass is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
@@ -598,6 +621,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"SubpassDescription is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CommandPool>::value, "CommandPool is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CommandPool>::value, "CommandPool is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ),
@@ -607,6 +631,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"CommandPoolCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CommandBuffer>::value, "CommandBuffer is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CommandBuffer>::value, "CommandBuffer is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ),
@@ -983,11 +1008,15 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::value,
+ "SamplerYcbcrConversion is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::value,
"SamplerYcbcrConversion is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::value,
+ "DescriptorUpdateTemplate is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::value,
"DescriptorUpdateTemplate is not nothrow_move_constructible!" );
@@ -1516,6 +1545,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"PrivateDataSlotCreateInfo is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlot ) == sizeof( VkPrivateDataSlot ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::value, "PrivateDataSlot is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::value,
"PrivateDataSlot is not nothrow_move_constructible!" );
@@ -1784,6 +1814,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_KHR_surface ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::SurfaceKHR>::value, "SurfaceKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SurfaceKHR>::value, "SurfaceKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ),
@@ -1806,6 +1837,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"SwapchainCreateInfoKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, "SwapchainKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, "SwapchainKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
@@ -1852,6 +1884,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_KHR_display ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DisplayKHR>::value, "DisplayKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DisplayKHR>::value, "DisplayKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ),
@@ -1861,6 +1894,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"DisplayModeCreateInfoKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::value, "DisplayModeKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::value,
"DisplayModeKHR is not nothrow_move_constructible!" );
@@ -1961,6 +1995,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::value,
+ "DebugReportCallbackEXT is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::value,
"DebugReportCallbackEXT is not nothrow_move_constructible!" );
@@ -2003,11 +2039,14 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_KHR_video_queue ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoSessionKHR ) == sizeof( VkVideoSessionKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::VideoSessionKHR>::value, "VideoSessionKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoSessionKHR>::value,
"VideoSessionKHR is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR ) == sizeof( VkVideoSessionParametersKHR ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>::value,
+ "VideoSessionParametersKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>::value,
"VideoSessionParametersKHR is not nothrow_move_constructible!" );
@@ -2184,9 +2223,11 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_NVX_binary_import ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CuModuleNVX ) == sizeof( VkCuModuleNVX ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CuModuleNVX>::value, "CuModuleNVX is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CuModuleNVX>::value, "CuModuleNVX is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CuFunctionNVX ) == sizeof( VkCuFunctionNVX ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CuFunctionNVX>::value, "CuFunctionNVX is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CuFunctionNVX>::value, "CuFunctionNVX is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX ) == sizeof( VkCuModuleCreateInfoNVX ),
@@ -3158,6 +3199,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::value,
+ "DebugUtilsMessengerEXT is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::value,
"DebugUtilsMessengerEXT is not nothrow_move_constructible!" );
@@ -3459,6 +3502,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::value,
+ "AccelerationStructureKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::value,
"AccelerationStructureKHR is not nothrow_move_constructible!" );
@@ -3671,6 +3716,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_EXT_validation_cache ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::value, "ValidationCacheEXT is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::value,
"ValidationCacheEXT is not nothrow_move_constructible!" );
@@ -3802,6 +3848,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::value,
+ "AccelerationStructureNV is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::value,
"AccelerationStructureNV is not nothrow_move_constructible!" );
@@ -4147,6 +4195,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::value,
+ "PerformanceConfigurationINTEL is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::value,
"PerformanceConfigurationINTEL is not nothrow_move_constructible!" );
@@ -4540,6 +4590,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_KHR_deferred_host_operations ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::value, "DeferredOperationKHR is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::value,
"DeferredOperationKHR is not nothrow_move_constructible!" );
@@ -4819,6 +4870,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::value,
+ "IndirectCommandsLayoutNV is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::value,
"IndirectCommandsLayoutNV is not nothrow_move_constructible!" );
@@ -5120,9 +5173,11 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_NV_cuda_kernel_launch ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaModuleNV ) == sizeof( VkCudaModuleNV ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CudaModuleNV>::value, "CudaModuleNV is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaModuleNV>::value, "CudaModuleNV is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CudaFunctionNV ) == sizeof( VkCudaFunctionNV ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::value, "CudaFunctionNV is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::value,
"CudaFunctionNV is not nothrow_move_constructible!" );
@@ -5786,6 +5841,8 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA ) == sizeof( VkBufferCollectionFUCHSIA ),
"handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>::value,
+ "BufferCollectionFUCHSIA is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>::value,
"BufferCollectionFUCHSIA is not nothrow_move_constructible!" );
@@ -6102,6 +6159,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"MicromapCreateInfoEXT is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MicromapEXT ) == sizeof( VkMicromapEXT ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::MicromapEXT>::value, "MicromapEXT is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MicromapEXT>::value, "MicromapEXT is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT ) == sizeof( VkPhysicalDeviceOpacityMicromapFeaturesEXT ),
@@ -6728,6 +6786,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
"OpticalFlowImageFormatPropertiesNV is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV ) == sizeof( VkOpticalFlowSessionNV ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV>::value, "OpticalFlowSessionNV is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV>::value,
"OpticalFlowSessionNV is not nothrow_move_constructible!" );
@@ -6860,6 +6919,7 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPAC
//=== VK_EXT_shader_object ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ShaderEXT ) == sizeof( VkShaderEXT ), "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::ShaderEXT>::value, "ShaderEXT is not copy_constructible!" );
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ShaderEXT>::value, "ShaderEXT is not nothrow_move_constructible!" );
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderObjectFeaturesEXT ),
@@ -6979,6 +7039,24 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::MutableD
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT>::value,
"MutableDescriptorTypeCreateInfoEXT is not nothrow_move_constructible!" );
+//=== VK_EXT_legacy_vertex_attributes ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT ) ==
+ sizeof( VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT>::value,
+ "PhysicalDeviceLegacyVertexAttributesFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT ) ==
+ sizeof( VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT>::value,
+ "PhysicalDeviceLegacyVertexAttributesPropertiesEXT is not nothrow_move_constructible!" );
+
//=== VK_EXT_layer_settings ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT ) == sizeof( VkLayerSettingsCreateInfoEXT ),
@@ -7503,4 +7581,29 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Physical
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV>::value,
"PhysicalDeviceRayTracingValidationFeaturesNV is not nothrow_move_constructible!" );
+//=== VK_MESA_image_alignment_control ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA ) ==
+ sizeof( VkPhysicalDeviceImageAlignmentControlFeaturesMESA ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA>::value,
+ "PhysicalDeviceImageAlignmentControlFeaturesMESA is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA ) ==
+ sizeof( VkPhysicalDeviceImageAlignmentControlPropertiesMESA ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA>::value,
+ "PhysicalDeviceImageAlignmentControlPropertiesMESA is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA ) == sizeof( VkImageAlignmentControlCreateInfoMESA ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA>::value,
+ "ImageAlignmentControlCreateInfoMESA is not nothrow_move_constructible!" );
+
#endif
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp
index 45d9c2b9a0..bb960de544 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_structs.hpp
@@ -24,12 +24,12 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
AabbPositionsKHR( float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {} ) VULKAN_HPP_NOEXCEPT
- : minX( minX_ )
- , minY( minY_ )
- , minZ( minZ_ )
- , maxX( maxX_ )
- , maxY( maxY_ )
- , maxZ( maxZ_ )
+ : minX{ minX_ }
+ , minY{ minY_ }
+ , minZ{ minZ_ }
+ , maxX{ maxX_ }
+ , maxY{ maxY_ }
+ , maxZ{ maxZ_ }
{
}
@@ -195,14 +195,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {},
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexFormat( vertexFormat_ )
- , vertexData( vertexData_ )
- , vertexStride( vertexStride_ )
- , maxVertex( maxVertex_ )
- , indexType( indexType_ )
- , indexData( indexData_ )
- , transformData( transformData_ )
+ : pNext{ pNext_ }
+ , vertexFormat{ vertexFormat_ }
+ , vertexData{ vertexData_ }
+ , vertexStride{ vertexStride_ }
+ , maxVertex{ maxVertex_ }
+ , indexType{ indexType_ }
+ , indexData{ indexData_ }
+ , transformData{ transformData_ }
{
}
@@ -336,9 +336,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , data( data_ )
- , stride( stride_ )
+ : pNext{ pNext_ }
+ , data{ data_ }
+ , stride{ stride_ }
{
}
@@ -428,9 +428,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {},
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , arrayOfPointers( arrayOfPointers_ )
- , data( data_ )
+ : pNext{ pNext_ }
+ , arrayOfPointers{ arrayOfPointers_ }
+ , data{ data_ }
{
}
@@ -586,10 +586,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {},
VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , geometryType( geometryType_ )
- , geometry( geometry_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , geometryType{ geometryType_ }
+ , geometry{ geometry_ }
+ , flags{ flags_ }
{
}
@@ -738,16 +738,16 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ = {},
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , flags( flags_ )
- , mode( mode_ )
- , srcAccelerationStructure( srcAccelerationStructure_ )
- , dstAccelerationStructure( dstAccelerationStructure_ )
- , geometryCount( geometryCount_ )
- , pGeometries( pGeometries_ )
- , ppGeometries( ppGeometries_ )
- , scratchData( scratchData_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , flags{ flags_ }
+ , mode{ mode_ }
+ , srcAccelerationStructure{ srcAccelerationStructure_ }
+ , dstAccelerationStructure{ dstAccelerationStructure_ }
+ , geometryCount{ geometryCount_ }
+ , pGeometries{ pGeometries_ }
+ , ppGeometries{ ppGeometries_ }
+ , scratchData{ scratchData_ }
{
}
@@ -954,10 +954,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t primitiveOffset_ = {},
uint32_t firstVertex_ = {},
uint32_t transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT
- : primitiveCount( primitiveCount_ )
- , primitiveOffset( primitiveOffset_ )
- , firstVertex( firstVertex_ )
- , transformOffset( transformOffset_ )
+ : primitiveCount{ primitiveCount_ }
+ , primitiveOffset{ primitiveOffset_ }
+ , firstVertex{ firstVertex_ }
+ , transformOffset{ transformOffset_ }
{
}
@@ -1063,10 +1063,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructureSize( accelerationStructureSize_ )
- , updateScratchSize( updateScratchSize_ )
- , buildScratchSize( buildScratchSize_ )
+ : pNext{ pNext_ }
+ , accelerationStructureSize{ accelerationStructureSize_ }
+ , updateScratchSize{ updateScratchSize_ }
+ , buildScratchSize{ buildScratchSize_ }
{
}
@@ -1156,9 +1156,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AccelerationStructureCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructure( accelerationStructure_ )
- , accelerationStructureNV( accelerationStructureNV_ )
+ : pNext{ pNext_ }
+ , accelerationStructure{ accelerationStructure_ }
+ , accelerationStructureNV{ accelerationStructureNV_ }
{
}
@@ -1275,13 +1275,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , createFlags( createFlags_ )
- , buffer( buffer_ )
- , offset( offset_ )
- , size( size_ )
- , type( type_ )
- , deviceAddress( deviceAddress_ )
+ : pNext{ pNext_ }
+ , createFlags{ createFlags_ }
+ , buffer{ buffer_ }
+ , offset{ offset_ }
+ , size{ size_ }
+ , type{ type_ }
+ , deviceAddress{ deviceAddress_ }
{
}
@@ -1431,18 +1431,18 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Buffer transformData_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexData( vertexData_ )
- , vertexOffset( vertexOffset_ )
- , vertexCount( vertexCount_ )
- , vertexStride( vertexStride_ )
- , vertexFormat( vertexFormat_ )
- , indexData( indexData_ )
- , indexOffset( indexOffset_ )
- , indexCount( indexCount_ )
- , indexType( indexType_ )
- , transformData( transformData_ )
- , transformOffset( transformOffset_ )
+ : pNext{ pNext_ }
+ , vertexData{ vertexData_ }
+ , vertexOffset{ vertexOffset_ }
+ , vertexCount{ vertexCount_ }
+ , vertexStride{ vertexStride_ }
+ , vertexFormat{ vertexFormat_ }
+ , indexData{ indexData_ }
+ , indexOffset{ indexOffset_ }
+ , indexCount{ indexCount_ }
+ , indexType{ indexType_ }
+ , transformData{ transformData_ }
+ , transformOffset{ transformOffset_ }
{
}
@@ -1637,11 +1637,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stride_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , aabbData( aabbData_ )
- , numAABBs( numAABBs_ )
- , stride( stride_ )
- , offset( offset_ )
+ : pNext{ pNext_ }
+ , aabbData{ aabbData_ }
+ , numAABBs{ numAABBs_ }
+ , stride{ stride_ }
+ , offset{ offset_ }
{
}
@@ -1758,8 +1758,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {},
VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT
- : triangles( triangles_ )
- , aabbs( aabbs_ )
+ : triangles{ triangles_ }
+ , aabbs{ aabbs_ }
{
}
@@ -1847,10 +1847,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {},
VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , geometryType( geometryType_ )
- , geometry( geometry_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , geometryType{ geometryType_ }
+ , geometry{ geometry_ }
+ , flags{ flags_ }
{
}
@@ -1965,12 +1965,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t geometryCount_ = {},
const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , flags( flags_ )
- , instanceCount( instanceCount_ )
- , geometryCount( geometryCount_ )
- , pGeometries( pGeometries_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , flags{ flags_ }
+ , instanceCount{ instanceCount_ }
+ , geometryCount{ geometryCount_ }
+ , pGeometries{ pGeometries_ }
{
}
@@ -2128,9 +2128,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {},
VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , compactedSize( compactedSize_ )
- , info( info_ )
+ : pNext{ pNext_ }
+ , compactedSize{ compactedSize_ }
+ , info{ info_ }
{
}
@@ -2236,8 +2236,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructure( accelerationStructure_ )
+ : pNext{ pNext_ }
+ , accelerationStructure{ accelerationStructure_ }
{
}
@@ -2334,8 +2334,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexData( vertexData_ )
+ : pNext{ pNext_ }
+ , vertexData{ vertexData_ }
{
}
@@ -2411,7 +2411,7 @@ namespace VULKAN_HPP_NAMESPACE
using NativeType = VkTransformMatrixKHR;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( std::array<std::array<float, 4>, 3> const & matrix_ = {} ) VULKAN_HPP_NOEXCEPT : matrix( matrix_ ) {}
+ VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( std::array<std::array<float, 4>, 3> const & matrix_ = {} ) VULKAN_HPP_NOEXCEPT : matrix{ matrix_ } {}
VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -2491,12 +2491,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t instanceShaderBindingTableRecordOffset_ = {},
VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
- : transform( transform_ )
- , instanceCustomIndex( instanceCustomIndex_ )
- , mask( mask_ )
- , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
- , flags( flags_ )
- , accelerationStructureReference( accelerationStructureReference_ )
+ : transform{ transform_ }
+ , instanceCustomIndex{ instanceCustomIndex_ }
+ , mask{ mask_ }
+ , instanceShaderBindingTableRecordOffset{ instanceShaderBindingTableRecordOffset_ }
+ , flags{ flags_ }
+ , accelerationStructureReference{ accelerationStructureReference_ }
{
}
@@ -2625,13 +2625,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t instanceShaderBindingTableRecordOffset_ = {},
VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
- : transformT0( transformT0_ )
- , transformT1( transformT1_ )
- , instanceCustomIndex( instanceCustomIndex_ )
- , mask( mask_ )
- , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
- , flags( flags_ )
- , accelerationStructureReference( accelerationStructureReference_ )
+ : transformT0{ transformT0_ }
+ , transformT1{ transformT1_ }
+ , instanceCustomIndex{ instanceCustomIndex_ }
+ , mask{ mask_ }
+ , instanceShaderBindingTableRecordOffset{ instanceShaderBindingTableRecordOffset_ }
+ , flags{ flags_ }
+ , accelerationStructureReference{ accelerationStructureReference_ }
{
}
@@ -2770,9 +2770,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject,
VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , accelerationStructure( accelerationStructure_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , accelerationStructure{ accelerationStructure_ }
{
}
@@ -2882,9 +2882,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( uint32_t maxInstances_ = {},
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxInstances( maxInstances_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , maxInstances{ maxInstances_ }
+ , flags{ flags_ }
{
}
@@ -3002,22 +3002,22 @@ namespace VULKAN_HPP_NAMESPACE
float tx_ = {},
float ty_ = {},
float tz_ = {} ) VULKAN_HPP_NOEXCEPT
- : sx( sx_ )
- , a( a_ )
- , b( b_ )
- , pvx( pvx_ )
- , sy( sy_ )
- , c( c_ )
- , pvy( pvy_ )
- , sz( sz_ )
- , pvz( pvz_ )
- , qx( qx_ )
- , qy( qy_ )
- , qz( qz_ )
- , qw( qw_ )
- , tx( tx_ )
- , ty( ty_ )
- , tz( tz_ )
+ : sx{ sx_ }
+ , a{ a_ }
+ , b{ b_ }
+ , pvx{ pvx_ }
+ , sy{ sy_ }
+ , c{ c_ }
+ , pvy{ pvy_ }
+ , sz{ sz_ }
+ , pvz{ pvz_ }
+ , qx{ qx_ }
+ , qy{ qy_ }
+ , qz{ qz_ }
+ , qw{ qw_ }
+ , tx{ tx_ }
+ , ty{ ty_ }
+ , tz{ tz_ }
{
}
@@ -3220,13 +3220,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t instanceShaderBindingTableRecordOffset_ = {},
VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
- : transformT0( transformT0_ )
- , transformT1( transformT1_ )
- , instanceCustomIndex( instanceCustomIndex_ )
- , mask( mask_ )
- , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
- , flags( flags_ )
- , accelerationStructureReference( accelerationStructureReference_ )
+ : transformT0{ transformT0_ }
+ , transformT1{ transformT1_ }
+ , instanceCustomIndex{ instanceCustomIndex_ }
+ , mask{ mask_ }
+ , instanceShaderBindingTableRecordOffset{ instanceShaderBindingTableRecordOffset_ }
+ , flags{ flags_ }
+ , accelerationStructureReference{ accelerationStructureReference_ }
{
}
@@ -3426,9 +3426,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic,
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ = {},
VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data_ = {} ) VULKAN_HPP_NOEXCEPT
- : type( type_ )
- , flags( flags_ )
- , data( data_ )
+ : type{ type_ }
+ , flags{ flags_ }
+ , data{ data_ }
{
}
@@ -3507,9 +3507,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MicromapUsageEXT( uint32_t count_ = {}, uint32_t subdivisionLevel_ = {}, uint32_t format_ = {} ) VULKAN_HPP_NOEXCEPT
- : count( count_ )
- , subdivisionLevel( subdivisionLevel_ )
- , format( format_ )
+ : count{ count_ }
+ , subdivisionLevel{ subdivisionLevel_ }
+ , format{ format_ }
{
}
@@ -3619,23 +3619,23 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {},
VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ )
- , displacementVectorFormat( displacementVectorFormat_ )
- , displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ )
- , displacementBiasAndScaleStride( displacementBiasAndScaleStride_ )
- , displacementVectorBuffer( displacementVectorBuffer_ )
- , displacementVectorStride( displacementVectorStride_ )
- , displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ )
- , displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ )
- , indexType( indexType_ )
- , indexBuffer( indexBuffer_ )
- , indexStride( indexStride_ )
- , baseTriangle( baseTriangle_ )
- , usageCountsCount( usageCountsCount_ )
- , pUsageCounts( pUsageCounts_ )
- , ppUsageCounts( ppUsageCounts_ )
- , micromap( micromap_ )
+ : pNext{ pNext_ }
+ , displacementBiasAndScaleFormat{ displacementBiasAndScaleFormat_ }
+ , displacementVectorFormat{ displacementVectorFormat_ }
+ , displacementBiasAndScaleBuffer{ displacementBiasAndScaleBuffer_ }
+ , displacementBiasAndScaleStride{ displacementBiasAndScaleStride_ }
+ , displacementVectorBuffer{ displacementVectorBuffer_ }
+ , displacementVectorStride{ displacementVectorStride_ }
+ , displacedMicromapPrimitiveFlags{ displacedMicromapPrimitiveFlags_ }
+ , displacedMicromapPrimitiveFlagsStride{ displacedMicromapPrimitiveFlagsStride_ }
+ , indexType{ indexType_ }
+ , indexBuffer{ indexBuffer_ }
+ , indexStride{ indexStride_ }
+ , baseTriangle{ baseTriangle_ }
+ , usageCountsCount{ usageCountsCount_ }
+ , pUsageCounts{ pUsageCounts_ }
+ , ppUsageCounts{ ppUsageCounts_ }
+ , micromap{ micromap_ }
{
}
@@ -3946,15 +3946,15 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {},
VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , indexType( indexType_ )
- , indexBuffer( indexBuffer_ )
- , indexStride( indexStride_ )
- , baseTriangle( baseTriangle_ )
- , usageCountsCount( usageCountsCount_ )
- , pUsageCounts( pUsageCounts_ )
- , ppUsageCounts( ppUsageCounts_ )
- , micromap( micromap_ )
+ : pNext{ pNext_ }
+ , indexType{ indexType_ }
+ , indexBuffer{ indexBuffer_ }
+ , indexStride{ indexStride_ }
+ , baseTriangle{ baseTriangle_ }
+ , usageCountsCount{ usageCountsCount_ }
+ , pUsageCounts{ pUsageCounts_ }
+ , ppUsageCounts{ ppUsageCounts_ }
+ , micromap{ micromap_ }
{
}
@@ -4147,8 +4147,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pVersionData( pVersionData_ )
+ : pNext{ pNext_ }
+ , pVersionData{ pVersionData_ }
{
}
@@ -4248,12 +4248,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence_ = {},
uint32_t deviceMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchain( swapchain_ )
- , timeout( timeout_ )
- , semaphore( semaphore_ )
- , fence( fence_ )
- , deviceMask( deviceMask_ )
+ : pNext{ pNext_ }
+ , swapchain{ swapchain_ }
+ , timeout{ timeout_ }
+ , semaphore{ semaphore_ }
+ , fence{ fence_ }
+ , deviceMask{ deviceMask_ }
{
}
@@ -4385,9 +4385,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {},
uint64_t timeout_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , timeout( timeout_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , timeout{ timeout_ }
{
}
@@ -4491,12 +4491,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkFreeFunction pfnFree_ = {},
PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {},
PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT
- : pUserData( pUserData_ )
- , pfnAllocation( pfnAllocation_ )
- , pfnReallocation( pfnReallocation_ )
- , pfnFree( pfnFree_ )
- , pfnInternalAllocation( pfnInternalAllocation_ )
- , pfnInternalFree( pfnInternalFree_ )
+ : pUserData{ pUserData_ }
+ , pfnAllocation{ pfnAllocation_ }
+ , pfnReallocation{ pfnReallocation_ }
+ , pfnFree{ pfnFree_ }
+ , pfnInternalAllocation{ pfnInternalAllocation_ }
+ , pfnInternalFree{ pfnInternalFree_ }
{
}
@@ -4614,9 +4614,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
AmigoProfilingSubmitInfoSEC( uint64_t firstDrawTimestamp_ = {}, uint64_t swapBufferTimestamp_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , firstDrawTimestamp( firstDrawTimestamp_ )
- , swapBufferTimestamp( swapBufferTimestamp_ )
+ : pNext{ pNext_ }
+ , firstDrawTimestamp{ firstDrawTimestamp_ }
+ , swapBufferTimestamp{ swapBufferTimestamp_ }
{
}
@@ -4719,10 +4719,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) VULKAN_HPP_NOEXCEPT
- : r( r_ )
- , g( g_ )
- , b( b_ )
- , a( a_ )
+ : r{ r_ }
+ , g{ g_ }
+ , b{ b_ }
+ , a{ a_ }
{
}
@@ -4834,15 +4834,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , externalFormat( externalFormat_ )
- , formatFeatures( formatFeatures_ )
- , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
- , suggestedYcbcrModel( suggestedYcbcrModel_ )
- , suggestedYcbcrRange( suggestedYcbcrRange_ )
- , suggestedXChromaOffset( suggestedXChromaOffset_ )
- , suggestedYChromaOffset( suggestedYChromaOffset_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , externalFormat{ externalFormat_ }
+ , formatFeatures{ formatFeatures_ }
+ , samplerYcbcrConversionComponents{ samplerYcbcrConversionComponents_ }
+ , suggestedYcbcrModel{ suggestedYcbcrModel_ }
+ , suggestedYcbcrRange{ suggestedYcbcrRange_ }
+ , suggestedXChromaOffset{ suggestedXChromaOffset_ }
+ , suggestedYChromaOffset{ suggestedYChromaOffset_ }
{
}
@@ -4963,15 +4963,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , externalFormat( externalFormat_ )
- , formatFeatures( formatFeatures_ )
- , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
- , suggestedYcbcrModel( suggestedYcbcrModel_ )
- , suggestedYcbcrRange( suggestedYcbcrRange_ )
- , suggestedXChromaOffset( suggestedXChromaOffset_ )
- , suggestedYChromaOffset( suggestedYChromaOffset_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , externalFormat{ externalFormat_ }
+ , formatFeatures{ formatFeatures_ }
+ , samplerYcbcrConversionComponents{ samplerYcbcrConversionComponents_ }
+ , suggestedYcbcrModel{ suggestedYcbcrModel_ }
+ , suggestedYcbcrRange{ suggestedYcbcrRange_ }
+ , suggestedXChromaOffset{ suggestedXChromaOffset_ }
+ , suggestedYChromaOffset{ suggestedYChromaOffset_ }
{
}
@@ -5084,8 +5084,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
AndroidHardwareBufferFormatResolvePropertiesANDROID( VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorAttachmentFormat( colorAttachmentFormat_ )
+ : pNext{ pNext_ }
+ , colorAttachmentFormat{ colorAttachmentFormat_ }
{
}
@@ -5172,9 +5172,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
uint32_t memoryTypeBits_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , allocationSize( allocationSize_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , allocationSize{ allocationSize_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -5258,8 +5258,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , androidHardwareBufferUsage( androidHardwareBufferUsage_ )
+ : pNext{ pNext_ }
+ , androidHardwareBufferUsage{ androidHardwareBufferUsage_ }
{
}
@@ -5344,9 +5344,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {},
struct ANativeWindow * window_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , window( window_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , window{ window_ }
{
}
@@ -5457,12 +5457,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t engineVersion_ = {},
uint32_t apiVersion_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pApplicationName( pApplicationName_ )
- , applicationVersion( applicationVersion_ )
- , pEngineName( pEngineName_ )
- , engineVersion( engineVersion_ )
- , apiVersion( apiVersion_ )
+ : pNext{ pNext_ }
+ , pApplicationName{ pApplicationName_ }
+ , applicationVersion{ applicationVersion_ }
+ , pEngineName{ pEngineName_ }
+ , engineVersion{ engineVersion_ }
+ , apiVersion{ apiVersion_ }
{
}
@@ -5613,15 +5613,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
- : flags( flags_ )
- , format( format_ )
- , samples( samples_ )
- , loadOp( loadOp_ )
- , storeOp( storeOp_ )
- , stencilLoadOp( stencilLoadOp_ )
- , stencilStoreOp( stencilStoreOp_ )
- , initialLayout( initialLayout_ )
- , finalLayout( finalLayout_ )
+ : flags{ flags_ }
+ , format{ format_ }
+ , samples{ samples_ }
+ , loadOp{ loadOp_ }
+ , storeOp{ storeOp_ }
+ , stencilLoadOp{ stencilLoadOp_ }
+ , stencilStoreOp{ stencilStoreOp_ }
+ , initialLayout{ initialLayout_ }
+ , finalLayout{ finalLayout_ }
{
}
@@ -5777,16 +5777,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , format( format_ )
- , samples( samples_ )
- , loadOp( loadOp_ )
- , storeOp( storeOp_ )
- , stencilLoadOp( stencilLoadOp_ )
- , stencilStoreOp( stencilStoreOp_ )
- , initialLayout( initialLayout_ )
- , finalLayout( finalLayout_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , format{ format_ }
+ , samples{ samples_ }
+ , loadOp{ loadOp_ }
+ , storeOp{ storeOp_ }
+ , stencilLoadOp{ stencilLoadOp_ }
+ , stencilStoreOp{ stencilStoreOp_ }
+ , initialLayout{ initialLayout_ }
+ , finalLayout{ finalLayout_ }
{
}
@@ -5954,9 +5954,9 @@ namespace VULKAN_HPP_NAMESPACE
AttachmentDescriptionStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stencilInitialLayout( stencilInitialLayout_ )
- , stencilFinalLayout( stencilFinalLayout_ )
+ : pNext{ pNext_ }
+ , stencilInitialLayout{ stencilInitialLayout_ }
+ , stencilFinalLayout{ stencilFinalLayout_ }
{
}
@@ -6062,8 +6062,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AttachmentReference( uint32_t attachment_ = {},
VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
- : attachment( attachment_ )
- , layout( layout_ )
+ : attachment{ attachment_ }
+ , layout{ layout_ }
{
}
@@ -6153,10 +6153,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachment( attachment_ )
- , layout( layout_ )
- , aspectMask( aspectMask_ )
+ : pNext{ pNext_ }
+ , attachment{ attachment_ }
+ , layout{ layout_ }
+ , aspectMask{ aspectMask_ }
{
}
@@ -6273,8 +6273,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stencilLayout( stencilLayout_ )
+ : pNext{ pNext_ }
+ , stencilLayout{ stencilLayout_ }
{
}
@@ -6375,10 +6375,10 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ = {},
VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentSamples( pColorAttachmentSamples_ )
- , depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
+ : pNext{ pNext_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentSamples{ pColorAttachmentSamples_ }
+ , depthStencilAttachmentSamples{ depthStencilAttachmentSamples_ }
{
}
@@ -6516,8 +6516,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {}, uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT
- : width( width_ )
- , height( height_ )
+ : width{ width_ }
+ , height{ height_ }
{
}
@@ -6599,8 +6599,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
+ : x{ x_ }
+ , y{ y_ }
{
}
@@ -6690,11 +6690,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t sampleLocationsCount_ = {},
const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampleLocationsPerPixel( sampleLocationsPerPixel_ )
- , sampleLocationGridSize( sampleLocationGridSize_ )
- , sampleLocationsCount( sampleLocationsCount_ )
- , pSampleLocations( pSampleLocations_ )
+ : pNext{ pNext_ }
+ , sampleLocationsPerPixel{ sampleLocationsPerPixel_ }
+ , sampleLocationGridSize{ sampleLocationGridSize_ }
+ , sampleLocationsCount{ sampleLocationsCount_ }
+ , pSampleLocations{ pSampleLocations_ }
{
}
@@ -6842,8 +6842,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = {},
VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
- : attachmentIndex( attachmentIndex_ )
- , sampleLocationsInfo( sampleLocationsInfo_ )
+ : attachmentIndex{ attachmentIndex_ }
+ , sampleLocationsInfo{ sampleLocationsInfo_ }
{
}
@@ -6930,8 +6930,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseInStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : sType( sType_ )
- , pNext( pNext_ )
+ : sType{ sType_ }
+ , pNext{ pNext_ }
{
}
@@ -7008,8 +7008,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
BaseOutStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : sType( sType_ )
- , pNext( pNext_ )
+ : sType{ sType_ }
+ , pNext{ pNext_ }
{
}
@@ -7093,12 +7093,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t deviceIndexCount_ = {},
const uint32_t * pDeviceIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructure( accelerationStructure_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
- , deviceIndexCount( deviceIndexCount_ )
- , pDeviceIndices( pDeviceIndices_ )
+ : pNext{ pNext_ }
+ , accelerationStructure{ accelerationStructure_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
+ , deviceIndexCount{ deviceIndexCount_ }
+ , pDeviceIndices{ pDeviceIndices_ }
{
}
@@ -7257,9 +7257,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
const uint32_t * pDeviceIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceIndexCount( deviceIndexCount_ )
- , pDeviceIndices( pDeviceIndices_ )
+ : pNext{ pNext_ }
+ , deviceIndexCount{ deviceIndexCount_ }
+ , pDeviceIndices{ pDeviceIndices_ }
{
}
@@ -7383,10 +7383,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
{
}
@@ -7504,10 +7504,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
uint32_t set_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stageFlags( stageFlags_ )
- , layout( layout_ )
- , set( set_ )
+ : pNext{ pNext_ }
+ , stageFlags{ stageFlags_ }
+ , layout{ layout_ }
+ , set{ set_ }
{
}
@@ -7628,14 +7628,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t dynamicOffsetCount_ = {},
const uint32_t * pDynamicOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stageFlags( stageFlags_ )
- , layout( layout_ )
- , firstSet( firstSet_ )
- , descriptorSetCount( descriptorSetCount_ )
- , pDescriptorSets( pDescriptorSets_ )
- , dynamicOffsetCount( dynamicOffsetCount_ )
- , pDynamicOffsets( pDynamicOffsets_ )
+ : pNext{ pNext_ }
+ , stageFlags{ stageFlags_ }
+ , layout{ layout_ }
+ , firstSet{ firstSet_ }
+ , descriptorSetCount{ descriptorSetCount_ }
+ , pDescriptorSets{ pDescriptorSets_ }
+ , dynamicOffsetCount{ dynamicOffsetCount_ }
+ , pDynamicOffsets{ pDynamicOffsets_ }
{
}
@@ -7817,8 +7817,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {}, int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
+ : x{ x_ }
+ , y{ y_ }
{
}
@@ -7900,8 +7900,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT
- : offset( offset_ )
- , extent( extent_ )
+ : offset{ offset_ }
+ , extent{ extent_ }
{
}
@@ -7990,11 +7990,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t splitInstanceBindRegionCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceIndexCount( deviceIndexCount_ )
- , pDeviceIndices( pDeviceIndices_ )
- , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
- , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
+ : pNext{ pNext_ }
+ , deviceIndexCount{ deviceIndexCount_ }
+ , pDeviceIndices{ pDeviceIndices_ }
+ , splitInstanceBindRegionCount{ splitInstanceBindRegionCount_ }
+ , pSplitInstanceBindRegions{ pSplitInstanceBindRegions_ }
{
}
@@ -8155,10 +8155,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
{
}
@@ -8274,9 +8274,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
uint32_t imageIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchain( swapchain_ )
- , imageIndex( imageIndex_ )
+ : pNext{ pNext_ }
+ , swapchain{ swapchain_ }
+ , imageIndex{ imageIndex_ }
{
}
@@ -8379,8 +8379,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , planeAspect( planeAspect_ )
+ : pNext{ pNext_ }
+ , planeAspect{ planeAspect_ }
{
}
@@ -8477,9 +8477,9 @@ namespace VULKAN_HPP_NAMESPACE
BindIndexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
uint32_t size_ = {},
VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT
- : bufferAddress( bufferAddress_ )
- , size( size_ )
- , indexType( indexType_ )
+ : bufferAddress{ bufferAddress_ }
+ , size{ size_ }
+ , indexType{ indexType_ }
{
}
@@ -8574,8 +8574,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BindMemoryStatusKHR( VULKAN_HPP_NAMESPACE::Result * pResult_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pResult( pResult_ )
+ : pNext{ pNext_ }
+ , pResult{ pResult_ }
{
}
@@ -8666,7 +8666,7 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ = {} ) VULKAN_HPP_NOEXCEPT
- : pipelineAddress( pipelineAddress_ )
+ : pipelineAddress{ pipelineAddress_ }
{
}
@@ -8743,7 +8743,7 @@ namespace VULKAN_HPP_NAMESPACE
using NativeType = VkBindShaderGroupIndirectCommandNV;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT : groupIndex( groupIndex_ ) {}
+ VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT : groupIndex{ groupIndex_ } {}
VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -8823,11 +8823,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
- : resourceOffset( resourceOffset_ )
- , size( size_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
- , flags( flags_ )
+ : resourceOffset{ resourceOffset_ }
+ , size{ size_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
+ , flags{ flags_ }
{
}
@@ -8937,9 +8937,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
uint32_t bindCount_ = {},
const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
- : buffer( buffer_ )
- , bindCount( bindCount_ )
- , pBinds( pBinds_ )
+ : buffer{ buffer_ }
+ , bindCount{ bindCount_ }
+ , pBinds{ pBinds_ }
{
}
@@ -9051,9 +9051,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
uint32_t bindCount_ = {},
const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
- : image( image_ )
- , bindCount( bindCount_ )
- , pBinds( pBinds_ )
+ : image{ image_ }
+ , bindCount{ bindCount_ }
+ , pBinds{ pBinds_ }
{
}
@@ -9164,9 +9164,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT
- : aspectMask( aspectMask_ )
- , mipLevel( mipLevel_ )
- , arrayLayer( arrayLayer_ )
+ : aspectMask{ aspectMask_ }
+ , mipLevel{ mipLevel_ }
+ , arrayLayer{ arrayLayer_ }
{
}
@@ -9255,9 +9255,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
- , z( z_ )
+ : x{ x_ }
+ , y{ y_ }
+ , z{ z_ }
{
}
@@ -9348,9 +9348,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR Extent3D( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
- : width( width_ )
- , height( height_ )
- , depth( depth_ )
+ : width{ width_ }
+ , height{ height_ }
+ , depth{ depth_ }
{
}
@@ -9446,12 +9446,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
- : subresource( subresource_ )
- , offset( offset_ )
- , extent( extent_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
- , flags( flags_ )
+ : subresource{ subresource_ }
+ , offset{ offset_ }
+ , extent{ extent_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
+ , flags{ flags_ }
{
}
@@ -9572,9 +9572,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
uint32_t bindCount_ = {},
const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
- : image( image_ )
- , bindCount( bindCount_ )
- , pBinds( pBinds_ )
+ : image{ image_ }
+ , bindCount{ bindCount_ }
+ , pBinds{ pBinds_ }
{
}
@@ -9697,17 +9697,17 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreCount_ = {},
const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreCount( waitSemaphoreCount_ )
- , pWaitSemaphores( pWaitSemaphores_ )
- , bufferBindCount( bufferBindCount_ )
- , pBufferBinds( pBufferBinds_ )
- , imageOpaqueBindCount( imageOpaqueBindCount_ )
- , pImageOpaqueBinds( pImageOpaqueBinds_ )
- , imageBindCount( imageBindCount_ )
- , pImageBinds( pImageBinds_ )
- , signalSemaphoreCount( signalSemaphoreCount_ )
- , pSignalSemaphores( pSignalSemaphores_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreCount{ waitSemaphoreCount_ }
+ , pWaitSemaphores{ pWaitSemaphores_ }
+ , bufferBindCount{ bufferBindCount_ }
+ , pBufferBinds{ pBufferBinds_ }
+ , imageOpaqueBindCount{ imageOpaqueBindCount_ }
+ , pImageOpaqueBinds{ pImageOpaqueBinds_ }
+ , imageBindCount{ imageBindCount_ }
+ , pImageBinds{ pImageBinds_ }
+ , signalSemaphoreCount{ signalSemaphoreCount_ }
+ , pSignalSemaphores{ pSignalSemaphores_ }
{
}
@@ -9960,9 +9960,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
uint32_t size_ = {},
uint32_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
- : bufferAddress( bufferAddress_ )
- , size( size_ )
- , stride( stride_ )
+ : bufferAddress{ bufferAddress_ }
+ , size{ size_ }
+ , stride{ stride_ }
{
}
@@ -10061,11 +10061,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryBindIndex( memoryBindIndex_ )
- , memory( memory_ )
- , memoryOffset( memoryOffset_ )
- , memorySize( memorySize_ )
+ : pNext{ pNext_ }
+ , memoryBindIndex{ memoryBindIndex_ }
+ , memory{ memory_ }
+ , memoryOffset{ memoryOffset_ }
+ , memorySize{ memorySize_ }
{
}
@@ -10189,8 +10189,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
BlitImageCubicWeightsInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cubicWeights( cubicWeights_ )
+ : pNext{ pNext_ }
+ , cubicWeights{ cubicWeights_ }
{
}
@@ -10285,10 +10285,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t mipLevel_ = {},
uint32_t baseArrayLayer_ = {},
uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : aspectMask( aspectMask_ )
- , mipLevel( mipLevel_ )
- , baseArrayLayer( baseArrayLayer_ )
- , layerCount( layerCount_ )
+ : aspectMask{ aspectMask_ }
+ , mipLevel{ mipLevel_ }
+ , baseArrayLayer{ baseArrayLayer_ }
+ , layerCount{ layerCount_ }
{
}
@@ -10394,11 +10394,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcSubresource( srcSubresource_ )
- , srcOffsets( srcOffsets_ )
- , dstSubresource( dstSubresource_ )
- , dstOffsets( dstOffsets_ )
+ : pNext{ pNext_ }
+ , srcSubresource{ srcSubresource_ }
+ , srcOffsets{ srcOffsets_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffsets{ dstOffsets_ }
{
}
@@ -10526,14 +10526,14 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ = {},
VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
- , filter( filter_ )
+ : pNext{ pNext_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
+ , filter{ filter_ }
{
}
@@ -10708,8 +10708,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -10807,9 +10807,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
uint32_t index_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , collection( collection_ )
- , index( index_ )
+ : pNext{ pNext_ }
+ , collection{ collection_ }
+ , index{ index_ }
{
}
@@ -10919,12 +10919,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t minBufferCountForDedicatedSlack_ = {},
uint32_t minBufferCountForSharedSlack_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minBufferCount( minBufferCount_ )
- , maxBufferCount( maxBufferCount_ )
- , minBufferCountForCamping( minBufferCountForCamping_ )
- , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
- , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
+ : pNext{ pNext_ }
+ , minBufferCount{ minBufferCount_ }
+ , maxBufferCount{ maxBufferCount_ }
+ , minBufferCountForCamping{ minBufferCountForCamping_ }
+ , minBufferCountForDedicatedSlack{ minBufferCountForDedicatedSlack_ }
+ , minBufferCountForSharedSlack{ minBufferCountForSharedSlack_ }
{
}
@@ -11059,8 +11059,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( zx_handle_t collectionToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , collectionToken( collectionToken_ )
+ : pNext{ pNext_ }
+ , collectionToken{ collectionToken_ }
{
}
@@ -11165,9 +11165,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
uint32_t index_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , collection( collection_ )
- , index( index_ )
+ : pNext{ pNext_ }
+ , collection{ collection_ }
+ , index{ index_ }
{
}
@@ -11272,8 +11272,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( uint32_t colorSpace_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorSpace( colorSpace_ )
+ : pNext{ pNext_ }
+ , colorSpace{ colorSpace_ }
{
}
@@ -11382,18 +11382,18 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryTypeBits( memoryTypeBits_ )
- , bufferCount( bufferCount_ )
- , createInfoIndex( createInfoIndex_ )
- , sysmemPixelFormat( sysmemPixelFormat_ )
- , formatFeatures( formatFeatures_ )
- , sysmemColorSpaceIndex( sysmemColorSpaceIndex_ )
- , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
- , suggestedYcbcrModel( suggestedYcbcrModel_ )
- , suggestedYcbcrRange( suggestedYcbcrRange_ )
- , suggestedXChromaOffset( suggestedXChromaOffset_ )
- , suggestedYChromaOffset( suggestedYChromaOffset_ )
+ : pNext{ pNext_ }
+ , memoryTypeBits{ memoryTypeBits_ }
+ , bufferCount{ bufferCount_ }
+ , createInfoIndex{ createInfoIndex_ }
+ , sysmemPixelFormat{ sysmemPixelFormat_ }
+ , formatFeatures{ formatFeatures_ }
+ , sysmemColorSpaceIndex{ sysmemColorSpaceIndex_ }
+ , samplerYcbcrConversionComponents{ samplerYcbcrConversionComponents_ }
+ , suggestedYcbcrModel{ suggestedYcbcrModel_ }
+ , suggestedYcbcrRange{ suggestedYcbcrRange_ }
+ , suggestedXChromaOffset{ suggestedXChromaOffset_ }
+ , suggestedYChromaOffset{ suggestedYChromaOffset_ }
{
}
@@ -11519,13 +11519,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queueFamilyIndexCount_ = {},
const uint32_t * pQueueFamilyIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , size( size_ )
- , usage( usage_ )
- , sharingMode( sharingMode_ )
- , queueFamilyIndexCount( queueFamilyIndexCount_ )
- , pQueueFamilyIndices( pQueueFamilyIndices_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , size{ size_ }
+ , usage{ usage_ }
+ , sharingMode{ sharingMode_ }
+ , queueFamilyIndexCount{ queueFamilyIndexCount_ }
+ , pQueueFamilyIndices{ pQueueFamilyIndices_ }
{
}
@@ -11691,10 +11691,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , createInfo( createInfo_ )
- , requiredFormatFeatures( requiredFormatFeatures_ )
- , bufferCollectionConstraints( bufferCollectionConstraints_ )
+ : pNext{ pNext_ }
+ , createInfo{ createInfo_ }
+ , requiredFormatFeatures{ requiredFormatFeatures_ }
+ , bufferCollectionConstraints{ bufferCollectionConstraints_ }
{
}
@@ -11810,9 +11810,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcOffset( srcOffset_ )
- , dstOffset( dstOffset_ )
- , size( size_ )
+ : srcOffset{ srcOffset_ }
+ , dstOffset{ dstOffset_ }
+ , size{ size_ }
{
}
@@ -11907,10 +11907,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcOffset( srcOffset_ )
- , dstOffset( dstOffset_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , srcOffset{ srcOffset_ }
+ , dstOffset{ dstOffset_ }
+ , size{ size_ }
{
}
@@ -12023,8 +12023,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceAddress( deviceAddress_ )
+ : pNext{ pNext_ }
+ , deviceAddress{ deviceAddress_ }
{
}
@@ -12119,8 +12119,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -12220,12 +12220,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
- : bufferOffset( bufferOffset_ )
- , bufferRowLength( bufferRowLength_ )
- , bufferImageHeight( bufferImageHeight_ )
- , imageSubresource( imageSubresource_ )
- , imageOffset( imageOffset_ )
- , imageExtent( imageExtent_ )
+ : bufferOffset{ bufferOffset_ }
+ , bufferRowLength{ bufferRowLength_ }
+ , bufferImageHeight{ bufferImageHeight_ }
+ , imageSubresource{ imageSubresource_ }
+ , imageOffset{ imageOffset_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -12350,13 +12350,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , bufferOffset( bufferOffset_ )
- , bufferRowLength( bufferRowLength_ )
- , bufferImageHeight( bufferImageHeight_ )
- , imageSubresource( imageSubresource_ )
- , imageOffset( imageOffset_ )
- , imageExtent( imageExtent_ )
+ : pNext{ pNext_ }
+ , bufferOffset{ bufferOffset_ }
+ , bufferRowLength{ bufferRowLength_ }
+ , bufferImageHeight{ bufferImageHeight_ }
+ , imageSubresource{ imageSubresource_ }
+ , imageOffset{ imageOffset_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -12501,14 +12501,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcAccessMask( srcAccessMask_ )
- , dstAccessMask( dstAccessMask_ )
- , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
- , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
- , buffer( buffer_ )
- , offset( offset_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , srcQueueFamilyIndex{ srcQueueFamilyIndex_ }
+ , dstQueueFamilyIndex{ dstQueueFamilyIndex_ }
+ , buffer{ buffer_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -12663,16 +12663,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcStageMask( srcStageMask_ )
- , srcAccessMask( srcAccessMask_ )
- , dstStageMask( dstStageMask_ )
- , dstAccessMask( dstAccessMask_ )
- , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
- , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
- , buffer( buffer_ )
- , offset( offset_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , srcStageMask{ srcStageMask_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstStageMask{ dstStageMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , srcQueueFamilyIndex{ srcQueueFamilyIndex_ }
+ , dstQueueFamilyIndex{ dstQueueFamilyIndex_ }
+ , buffer{ buffer_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -12837,8 +12837,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -12935,8 +12935,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , opaqueCaptureAddress( opaqueCaptureAddress_ )
+ : pNext{ pNext_ }
+ , opaqueCaptureAddress{ opaqueCaptureAddress_ }
{
}
@@ -13034,8 +13034,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , usage( usage_ )
+ : pNext{ pNext_ }
+ , usage{ usage_ }
{
}
@@ -13135,12 +13135,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize range_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , buffer( buffer_ )
- , format( format_ )
- , offset( offset_ )
- , range( range_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , buffer{ buffer_ }
+ , format{ format_ }
+ , offset{ offset_ }
+ , range{ range_ }
{
}
@@ -13271,8 +13271,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoKHR( VULKAN_HPP_NAMESPACE::TimeDomainKHR timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainKHR::eDevice,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , timeDomain( timeDomain_ )
+ : pNext{ pNext_ }
+ , timeDomain{ timeDomain_ }
{
}
@@ -13370,9 +13370,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
CheckpointData2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage_ = {}, void * pCheckpointMarker_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stage( stage_ )
- , pCheckpointMarker( pCheckpointMarker_ )
+ : pNext{ pNext_ }
+ , stage{ stage_ }
+ , pCheckpointMarker{ pCheckpointMarker_ }
{
}
@@ -13453,9 +13453,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR CheckpointDataNV( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe,
void * pCheckpointMarker_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stage( stage_ )
- , pCheckpointMarker( pCheckpointMarker_ )
+ : pNext{ pNext_ }
+ , stage{ stage_ }
+ , pCheckpointMarker{ pCheckpointMarker_ }
{
}
@@ -13593,8 +13593,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {}, uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT
- : depth( depth_ )
- , stencil( stencil_ )
+ : depth{ depth_ }
+ , stencil{ stencil_ }
{
}
@@ -13724,9 +13724,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
uint32_t colorAttachment_ = {},
VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT
- : aspectMask( aspectMask_ )
- , colorAttachment( colorAttachment_ )
- , clearValue( clearValue_ )
+ : aspectMask{ aspectMask_ }
+ , colorAttachment{ colorAttachment_ }
+ , clearValue{ clearValue_ }
{
}
@@ -13797,9 +13797,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : rect( rect_ )
- , baseArrayLayer( baseArrayLayer_ )
- , layerCount( layerCount_ )
+ : rect{ rect_ }
+ , baseArrayLayer{ baseArrayLayer_ }
+ , layerCount{ layerCount_ }
{
}
@@ -13888,9 +13888,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT
- : pixelX( pixelX_ )
- , pixelY( pixelY_ )
- , sample( sample_ )
+ : pixelX{ pixelX_ }
+ , pixelY{ pixelY_ }
+ , sample{ sample_ }
{
}
@@ -13986,10 +13986,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t sampleCount_ = {},
uint32_t sampleLocationCount_ = {},
const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
- : shadingRate( shadingRate_ )
- , sampleCount( sampleCount_ )
- , sampleLocationCount( sampleLocationCount_ )
- , pSampleLocations( pSampleLocations_ )
+ : shadingRate{ shadingRate_ }
+ , sampleCount{ sampleCount_ }
+ , sampleLocationCount{ sampleLocationCount_ }
+ , pSampleLocations{ pSampleLocations_ }
{
}
@@ -14119,11 +14119,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated,
VULKAN_HPP_NAMESPACE::Bool32 clampResults_ = {} ) VULKAN_HPP_NOEXCEPT
- : advancedBlendOp( advancedBlendOp_ )
- , srcPremultiplied( srcPremultiplied_ )
- , dstPremultiplied( dstPremultiplied_ )
- , blendOverlap( blendOverlap_ )
- , clampResults( clampResults_ )
+ : advancedBlendOp{ advancedBlendOp_ }
+ , srcPremultiplied{ srcPremultiplied_ }
+ , dstPremultiplied{ dstPremultiplied_ }
+ , blendOverlap{ blendOverlap_ }
+ , clampResults{ clampResults_ }
{
}
@@ -14239,12 +14239,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd ) VULKAN_HPP_NOEXCEPT
- : srcColorBlendFactor( srcColorBlendFactor_ )
- , dstColorBlendFactor( dstColorBlendFactor_ )
- , colorBlendOp( colorBlendOp_ )
- , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
- , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
- , alphaBlendOp( alphaBlendOp_ )
+ : srcColorBlendFactor{ srcColorBlendFactor_ }
+ , dstColorBlendFactor{ dstColorBlendFactor_ }
+ , colorBlendOp{ colorBlendOp_ }
+ , srcAlphaBlendFactor{ srcAlphaBlendFactor_ }
+ , dstAlphaBlendFactor{ dstAlphaBlendFactor_ }
+ , alphaBlendOp{ alphaBlendOp_ }
{
}
@@ -14369,10 +14369,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary,
uint32_t commandBufferCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , commandPool( commandPool_ )
- , level( level_ )
- , commandBufferCount( commandBufferCount_ )
+ : pNext{ pNext_ }
+ , commandPool{ commandPool_ }
+ , level{ level_ }
+ , commandBufferCount{ commandBufferCount_ }
{
}
@@ -14492,13 +14492,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {},
VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , renderPass( renderPass_ )
- , subpass( subpass_ )
- , framebuffer( framebuffer_ )
- , occlusionQueryEnable( occlusionQueryEnable_ )
- , queryFlags( queryFlags_ )
- , pipelineStatistics( pipelineStatistics_ )
+ : pNext{ pNext_ }
+ , renderPass{ renderPass_ }
+ , subpass{ subpass_ }
+ , framebuffer{ framebuffer_ }
+ , occlusionQueryEnable{ occlusionQueryEnable_ }
+ , queryFlags{ queryFlags_ }
+ , pipelineStatistics{ pipelineStatistics_ }
{
}
@@ -14640,9 +14640,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {},
const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pInheritanceInfo( pInheritanceInfo_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pInheritanceInfo{ pInheritanceInfo_ }
{
}
@@ -14749,8 +14749,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , conditionalRenderingEnable( conditionalRenderingEnable_ )
+ : pNext{ pNext_ }
+ , conditionalRenderingEnable{ conditionalRenderingEnable_ }
{
}
@@ -14851,9 +14851,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , transform( transform_ )
- , renderArea( renderArea_ )
+ : pNext{ pNext_ }
+ , transform{ transform_ }
+ , renderArea{ renderArea_ }
{
}
@@ -14970,14 +14970,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , viewMask( viewMask_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentFormats( pColorAttachmentFormats_ )
- , depthAttachmentFormat( depthAttachmentFormat_ )
- , stencilAttachmentFormat( stencilAttachmentFormat_ )
- , rasterizationSamples( rasterizationSamples_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , viewMask{ viewMask_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentFormats{ pColorAttachmentFormats_ }
+ , depthAttachmentFormat{ depthAttachmentFormat_ }
+ , stencilAttachmentFormat{ stencilAttachmentFormat_ }
+ , rasterizationSamples{ rasterizationSamples_ }
{
}
@@ -15160,12 +15160,12 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
Viewport( float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
- , width( width_ )
- , height( height_ )
- , minDepth( minDepth_ )
- , maxDepth( maxDepth_ )
+ : x{ x_ }
+ , y{ y_ }
+ , width{ width_ }
+ , height{ height_ }
+ , minDepth{ minDepth_ }
+ , maxDepth{ maxDepth_ }
{
}
@@ -15282,10 +15282,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t viewportDepthCount_ = {},
const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , viewportScissor2D( viewportScissor2D_ )
- , viewportDepthCount( viewportDepthCount_ )
- , pViewportDepths( pViewportDepths_ )
+ : pNext{ pNext_ }
+ , viewportScissor2D{ viewportScissor2D_ }
+ , viewportDepthCount{ viewportDepthCount_ }
+ , pViewportDepths{ pViewportDepths_ }
{
}
@@ -15404,9 +15404,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {},
uint32_t deviceMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , commandBuffer( commandBuffer_ )
- , deviceMask( deviceMask_ )
+ : pNext{ pNext_ }
+ , commandBuffer{ commandBuffer_ }
+ , deviceMask{ deviceMask_ }
{
}
@@ -15512,9 +15512,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {},
uint32_t queueFamilyIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , queueFamilyIndex( queueFamilyIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , queueFamilyIndex{ queueFamilyIndex_ }
{
}
@@ -15613,9 +15613,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SpecializationMapEntry( uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {} ) VULKAN_HPP_NOEXCEPT
- : constantID( constantID_ )
- , offset( offset_ )
- , size( size_ )
+ : constantID{ constantID_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -15710,10 +15710,10 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ = {},
size_t dataSize_ = {},
const void * pData_ = {} ) VULKAN_HPP_NOEXCEPT
- : mapEntryCount( mapEntryCount_ )
- , pMapEntries( pMapEntries_ )
- , dataSize( dataSize_ )
- , pData( pData_ )
+ : mapEntryCount{ mapEntryCount_ }
+ , pMapEntries{ pMapEntries_ }
+ , dataSize{ dataSize_ }
+ , pData{ pData_ }
{
}
@@ -15849,12 +15849,12 @@ namespace VULKAN_HPP_NAMESPACE
const char * pName_ = {},
const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stage( stage_ )
- , module( module_ )
- , pName( pName_ )
- , pSpecializationInfo( pSpecializationInfo_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stage{ stage_ }
+ , module{ module_ }
+ , pName{ pName_ }
+ , pSpecializationInfo{ pSpecializationInfo_ }
{
}
@@ -16005,12 +16005,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
int32_t basePipelineIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stage( stage_ )
- , layout( layout_ )
- , basePipelineHandle( basePipelineHandle_ )
- , basePipelineIndex( basePipelineIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stage{ stage_ }
+ , layout{ layout_ }
+ , basePipelineHandle{ basePipelineHandle_ }
+ , basePipelineIndex{ basePipelineIndex_ }
{
}
@@ -16143,10 +16143,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceAddress( deviceAddress_ )
- , size( size_ )
- , pipelineDeviceAddressCaptureReplay( pipelineDeviceAddressCaptureReplay_ )
+ : pNext{ pNext_ }
+ , deviceAddress{ deviceAddress_ }
+ , size{ size_ }
+ , pipelineDeviceAddressCaptureReplay{ pipelineDeviceAddressCaptureReplay_ }
{
}
@@ -16264,10 +16264,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
- , offset( offset_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
+ , offset{ offset_ }
+ , flags{ flags_ }
{
}
@@ -16377,10 +16377,10 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT
- : major( major_ )
- , minor( minor_ )
- , subminor( subminor_ )
- , patch( patch_ )
+ : major{ major_ }
+ , minor{ minor_ }
+ , subminor{ subminor_ }
+ , patch{ patch_ }
{
}
@@ -16490,16 +16490,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ = {},
VULKAN_HPP_NAMESPACE::ScopeKHR scope_ = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , MSize( MSize_ )
- , NSize( NSize_ )
- , KSize( KSize_ )
- , AType( AType_ )
- , BType( BType_ )
- , CType( CType_ )
- , ResultType( ResultType_ )
- , saturatingAccumulation( saturatingAccumulation_ )
- , scope( scope_ )
+ : pNext{ pNext_ }
+ , MSize{ MSize_ }
+ , NSize{ NSize_ }
+ , KSize{ KSize_ }
+ , AType{ AType_ }
+ , BType{ BType_ }
+ , CType{ CType_ }
+ , ResultType{ ResultType_ }
+ , saturatingAccumulation{ saturatingAccumulation_ }
+ , scope{ scope_ }
{
}
@@ -16608,15 +16608,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = {},
VULKAN_HPP_NAMESPACE::ScopeNV scope_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , MSize( MSize_ )
- , NSize( NSize_ )
- , KSize( KSize_ )
- , AType( AType_ )
- , BType( BType_ )
- , CType( CType_ )
- , DType( DType_ )
- , scope( scope_ )
+ : pNext{ pNext_ }
+ , MSize{ MSize_ }
+ , NSize{ NSize_ }
+ , KSize{ KSize_ }
+ , AType{ AType_ }
+ , BType{ BType_ }
+ , CType{ CType_ }
+ , DType{ DType_ }
+ , scope{ scope_ }
{
}
@@ -16718,10 +16718,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -16838,10 +16838,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -16941,11 +16941,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcBuffer( srcBuffer_ )
- , dstBuffer( dstBuffer_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , srcBuffer{ srcBuffer_ }
+ , dstBuffer{ dstBuffer_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -17090,12 +17090,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcBuffer( srcBuffer_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , srcBuffer{ srcBuffer_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -17255,8 +17255,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
CopyCommandTransformInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , transform( transform_ )
+ : pNext{ pNext_ }
+ , transform{ transform_ }
{
}
@@ -17358,14 +17358,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t dstArrayElement_ = {},
uint32_t descriptorCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcSet( srcSet_ )
- , srcBinding( srcBinding_ )
- , srcArrayElement( srcArrayElement_ )
- , dstSet( dstSet_ )
- , dstBinding( dstBinding_ )
- , dstArrayElement( dstArrayElement_ )
- , descriptorCount( descriptorCount_ )
+ : pNext{ pNext_ }
+ , srcSet{ srcSet_ }
+ , srcBinding{ srcBinding_ }
+ , srcArrayElement{ srcArrayElement_ }
+ , dstSet{ dstSet_ }
+ , dstBinding{ dstBinding_ }
+ , dstArrayElement{ dstArrayElement_ }
+ , descriptorCount{ descriptorCount_ }
{
}
@@ -17514,12 +17514,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcSubresource( srcSubresource_ )
- , srcOffset( srcOffset_ )
- , dstSubresource( dstSubresource_ )
- , dstOffset( dstOffset_ )
- , extent( extent_ )
+ : pNext{ pNext_ }
+ , srcSubresource{ srcSubresource_ }
+ , srcOffset{ srcOffset_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffset{ dstOffset_ }
+ , extent{ extent_ }
{
}
@@ -17654,13 +17654,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -17829,12 +17829,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , dstBuffer( dstBuffer_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , dstBuffer{ dstBuffer_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -17999,14 +17999,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -18189,13 +18189,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pHostPointer( pHostPointer_ )
- , memoryRowLength( memoryRowLength_ )
- , memoryImageHeight( memoryImageHeight_ )
- , imageSubresource( imageSubresource_ )
- , imageOffset( imageOffset_ )
- , imageExtent( imageExtent_ )
+ : pNext{ pNext_ }
+ , pHostPointer{ pHostPointer_ }
+ , memoryRowLength{ memoryRowLength_ }
+ , memoryImageHeight{ memoryImageHeight_ }
+ , imageSubresource{ imageSubresource_ }
+ , imageOffset{ imageOffset_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -18340,12 +18340,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -18500,9 +18500,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {},
VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcAddress( srcAddress_ )
- , dstAddress( dstAddress_ )
- , size( size_ )
+ : srcAddress{ srcAddress_ }
+ , dstAddress{ dstAddress_ }
+ , size{ size_ }
{
}
@@ -18601,10 +18601,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -18703,12 +18703,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcAddress( srcAddress_ )
- , bufferRowLength( bufferRowLength_ )
- , bufferImageHeight( bufferImageHeight_ )
- , imageSubresource( imageSubresource_ )
- , imageOffset( imageOffset_ )
- , imageExtent( imageExtent_ )
+ : srcAddress{ srcAddress_ }
+ , bufferRowLength{ bufferRowLength_ }
+ , bufferImageHeight{ bufferImageHeight_ }
+ , imageSubresource{ imageSubresource_ }
+ , imageOffset{ imageOffset_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -18837,13 +18837,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pHostPointer( pHostPointer_ )
- , memoryRowLength( memoryRowLength_ )
- , memoryImageHeight( memoryImageHeight_ )
- , imageSubresource( imageSubresource_ )
- , imageOffset( imageOffset_ )
- , imageExtent( imageExtent_ )
+ : pNext{ pNext_ }
+ , pHostPointer{ pHostPointer_ }
+ , memoryRowLength{ memoryRowLength_ }
+ , memoryImageHeight{ memoryImageHeight_ }
+ , imageSubresource{ imageSubresource_ }
+ , imageOffset{ imageOffset_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -18988,12 +18988,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -19152,10 +19152,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {},
VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -19253,10 +19253,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {},
VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -19371,10 +19371,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , src( src_ )
- , dst( dst_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , src{ src_ }
+ , dst{ dst_ }
+ , mode{ mode_ }
{
}
@@ -19470,9 +19470,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
CuFunctionCreateInfoNVX( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , module( module_ )
- , pName( pName_ )
+ : pNext{ pNext_ }
+ , module{ module_ }
+ , pName{ pName_ }
{
}
@@ -19595,19 +19595,19 @@ namespace VULKAN_HPP_NAMESPACE
size_t extraCount_ = {},
const void * const * pExtras_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , function( function_ )
- , gridDimX( gridDimX_ )
- , gridDimY( gridDimY_ )
- , gridDimZ( gridDimZ_ )
- , blockDimX( blockDimX_ )
- , blockDimY( blockDimY_ )
- , blockDimZ( blockDimZ_ )
- , sharedMemBytes( sharedMemBytes_ )
- , paramCount( paramCount_ )
- , pParams( pParams_ )
- , extraCount( extraCount_ )
- , pExtras( pExtras_ )
+ : pNext{ pNext_ }
+ , function{ function_ }
+ , gridDimX{ gridDimX_ }
+ , gridDimY{ gridDimY_ }
+ , gridDimZ{ gridDimZ_ }
+ , blockDimX{ blockDimX_ }
+ , blockDimY{ blockDimY_ }
+ , blockDimZ{ blockDimZ_ }
+ , sharedMemBytes{ sharedMemBytes_ }
+ , paramCount{ paramCount_ }
+ , pParams{ pParams_ }
+ , extraCount{ extraCount_ }
+ , pExtras{ pExtras_ }
{
}
@@ -19840,9 +19840,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dataSize( dataSize_ )
- , pData( pData_ )
+ : pNext{ pNext_ }
+ , dataSize{ dataSize_ }
+ , pData{ pData_ }
{
}
@@ -19964,9 +19964,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
CudaFunctionCreateInfoNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , module( module_ )
- , pName( pName_ )
+ : pNext{ pNext_ }
+ , module{ module_ }
+ , pName{ pName_ }
{
}
@@ -20091,19 +20091,19 @@ namespace VULKAN_HPP_NAMESPACE
size_t extraCount_ = {},
const void * const * pExtras_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , function( function_ )
- , gridDimX( gridDimX_ )
- , gridDimY( gridDimY_ )
- , gridDimZ( gridDimZ_ )
- , blockDimX( blockDimX_ )
- , blockDimY( blockDimY_ )
- , blockDimZ( blockDimZ_ )
- , sharedMemBytes( sharedMemBytes_ )
- , paramCount( paramCount_ )
- , pParams( pParams_ )
- , extraCount( extraCount_ )
- , pExtras( pExtras_ )
+ : pNext{ pNext_ }
+ , function{ function_ }
+ , gridDimX{ gridDimX_ }
+ , gridDimY{ gridDimY_ }
+ , gridDimZ{ gridDimZ_ }
+ , blockDimX{ blockDimX_ }
+ , blockDimY{ blockDimY_ }
+ , blockDimZ{ blockDimZ_ }
+ , sharedMemBytes{ sharedMemBytes_ }
+ , paramCount{ paramCount_ }
+ , pParams{ pParams_ }
+ , extraCount{ extraCount_ }
+ , pExtras{ pExtras_ }
{
}
@@ -20338,9 +20338,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR CudaModuleCreateInfoNV( size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dataSize( dataSize_ )
- , pData( pData_ )
+ : pNext{ pNext_ }
+ , dataSize{ dataSize_ }
+ , pData{ pData_ }
{
}
@@ -20466,11 +20466,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreValuesCount_ = {},
const uint64_t * pSignalSemaphoreValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
- , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
- , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
- , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreValuesCount{ waitSemaphoreValuesCount_ }
+ , pWaitSemaphoreValues{ pWaitSemaphoreValues_ }
+ , signalSemaphoreValuesCount{ signalSemaphoreValuesCount_ }
+ , pSignalSemaphoreValues{ pSignalSemaphoreValues_ }
{
}
@@ -20628,9 +20628,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14
DebugMarkerMarkerInfoEXT( const char * pMarkerName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pMarkerName( pMarkerName_ )
- , color( color_ )
+ : pNext{ pNext_ }
+ , pMarkerName{ pMarkerName_ }
+ , color{ color_ }
{
}
@@ -20746,10 +20746,10 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t object_ = {},
const char * pObjectName_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , objectType( objectType_ )
- , object( object_ )
- , pObjectName( pObjectName_ )
+ : pNext{ pNext_ }
+ , objectType{ objectType_ }
+ , object{ object_ }
+ , pObjectName{ pObjectName_ }
{
}
@@ -20880,12 +20880,12 @@ namespace VULKAN_HPP_NAMESPACE
size_t tagSize_ = {},
const void * pTag_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , objectType( objectType_ )
- , object( object_ )
- , tagName( tagName_ )
- , tagSize( tagSize_ )
- , pTag( pTag_ )
+ : pNext{ pNext_ }
+ , objectType{ objectType_ }
+ , object{ object_ }
+ , tagName{ tagName_ }
+ , tagSize{ tagSize_ }
+ , pTag{ pTag_ }
{
}
@@ -21040,10 +21040,10 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkDebugReportCallbackEXT pfnCallback_ = {},
void * pUserData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pfnCallback( pfnCallback_ )
- , pUserData( pUserData_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pfnCallback{ pfnCallback_ }
+ , pUserData{ pUserData_ }
{
}
@@ -21153,9 +21153,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14
DebugUtilsLabelEXT( const char * pLabelName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pLabelName( pLabelName_ )
- , color( color_ )
+ : pNext{ pNext_ }
+ , pLabelName{ pLabelName_ }
+ , color{ color_ }
{
}
@@ -21267,10 +21267,10 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t objectHandle_ = {},
const char * pObjectName_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , objectType( objectType_ )
- , objectHandle( objectHandle_ )
- , pObjectName( pObjectName_ )
+ : pNext{ pNext_ }
+ , objectType{ objectType_ }
+ , objectHandle{ objectHandle_ }
+ , pObjectName{ pObjectName_ }
{
}
@@ -21402,17 +21402,17 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t objectCount_ = {},
const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pMessageIdName( pMessageIdName_ )
- , messageIdNumber( messageIdNumber_ )
- , pMessage( pMessage_ )
- , queueLabelCount( queueLabelCount_ )
- , pQueueLabels( pQueueLabels_ )
- , cmdBufLabelCount( cmdBufLabelCount_ )
- , pCmdBufLabels( pCmdBufLabels_ )
- , objectCount( objectCount_ )
- , pObjects( pObjects_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pMessageIdName{ pMessageIdName_ }
+ , messageIdNumber{ messageIdNumber_ }
+ , pMessage{ pMessage_ }
+ , queueLabelCount{ queueLabelCount_ }
+ , pQueueLabels{ pQueueLabels_ }
+ , cmdBufLabelCount{ cmdBufLabelCount_ }
+ , pCmdBufLabels{ pCmdBufLabels_ }
+ , objectCount{ objectCount_ }
+ , pObjects{ pObjects_ }
{
}
@@ -21676,12 +21676,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {},
void * pUserData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , messageSeverity( messageSeverity_ )
- , messageType( messageType_ )
- , pfnUserCallback( pfnUserCallback_ )
- , pUserData( pUserData_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , messageSeverity{ messageSeverity_ }
+ , messageType{ messageType_ }
+ , pfnUserCallback{ pfnUserCallback_ }
+ , pUserData{ pUserData_ }
{
}
@@ -21814,12 +21814,12 @@ namespace VULKAN_HPP_NAMESPACE
size_t tagSize_ = {},
const void * pTag_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , objectType( objectType_ )
- , objectHandle( objectHandle_ )
- , tagName( tagName_ )
- , tagSize( tagSize_ )
- , pTag( pTag_ )
+ : pNext{ pNext_ }
+ , objectType{ objectType_ }
+ , objectHandle{ objectHandle_ }
+ , tagName{ tagName_ }
+ , tagSize{ tagSize_ }
+ , pTag{ pTag_ }
{
}
@@ -21977,11 +21977,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize compressedSize_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize_ = {},
VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcAddress( srcAddress_ )
- , dstAddress( dstAddress_ )
- , compressedSize( compressedSize_ )
- , decompressedSize( decompressedSize_ )
- , decompressionMethod( decompressionMethod_ )
+ : srcAddress{ srcAddress_ }
+ , dstAddress{ dstAddress_ }
+ , compressedSize{ compressedSize_ }
+ , decompressedSize{ decompressedSize_ }
+ , decompressionMethod{ decompressionMethod_ }
{
}
@@ -22097,8 +22097,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dedicatedAllocation( dedicatedAllocation_ )
+ : pNext{ pNext_ }
+ , dedicatedAllocation{ dedicatedAllocation_ }
{
}
@@ -22195,8 +22195,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dedicatedAllocation( dedicatedAllocation_ )
+ : pNext{ pNext_ }
+ , dedicatedAllocation{ dedicatedAllocation_ }
{
}
@@ -22294,9 +22294,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {},
VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , buffer{ buffer_ }
{
}
@@ -22402,11 +22402,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcStageMask( srcStageMask_ )
- , srcAccessMask( srcAccessMask_ )
- , dstStageMask( dstStageMask_ )
- , dstAccessMask( dstAccessMask_ )
+ : pNext{ pNext_ }
+ , srcStageMask{ srcStageMask_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstStageMask{ dstStageMask_ }
+ , dstAccessMask{ dstAccessMask_ }
{
}
@@ -22528,11 +22528,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t levelCount_ = {},
uint32_t baseArrayLayer_ = {},
uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : aspectMask( aspectMask_ )
- , baseMipLevel( baseMipLevel_ )
- , levelCount( levelCount_ )
- , baseArrayLayer( baseArrayLayer_ )
- , layerCount( layerCount_ )
+ : aspectMask{ aspectMask_ }
+ , baseMipLevel{ baseMipLevel_ }
+ , levelCount{ levelCount_ }
+ , baseArrayLayer{ baseArrayLayer_ }
+ , layerCount{ layerCount_ }
{
}
@@ -22652,17 +22652,17 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Image image_ = {},
VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcStageMask( srcStageMask_ )
- , srcAccessMask( srcAccessMask_ )
- , dstStageMask( dstStageMask_ )
- , dstAccessMask( dstAccessMask_ )
- , oldLayout( oldLayout_ )
- , newLayout( newLayout_ )
- , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
- , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
- , image( image_ )
- , subresourceRange( subresourceRange_ )
+ : pNext{ pNext_ }
+ , srcStageMask{ srcStageMask_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstStageMask{ dstStageMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , oldLayout{ oldLayout_ }
+ , newLayout{ newLayout_ }
+ , srcQueueFamilyIndex{ srcQueueFamilyIndex_ }
+ , dstQueueFamilyIndex{ dstQueueFamilyIndex_ }
+ , image{ image_ }
+ , subresourceRange{ subresourceRange_ }
{
}
@@ -22854,14 +22854,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t imageMemoryBarrierCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dependencyFlags( dependencyFlags_ )
- , memoryBarrierCount( memoryBarrierCount_ )
- , pMemoryBarriers( pMemoryBarriers_ )
- , bufferMemoryBarrierCount( bufferMemoryBarrierCount_ )
- , pBufferMemoryBarriers( pBufferMemoryBarriers_ )
- , imageMemoryBarrierCount( imageMemoryBarrierCount_ )
- , pImageMemoryBarriers( pImageMemoryBarriers_ )
+ : pNext{ pNext_ }
+ , dependencyFlags{ dependencyFlags_ }
+ , memoryBarrierCount{ memoryBarrierCount_ }
+ , pMemoryBarriers{ pMemoryBarriers_ }
+ , bufferMemoryBarrierCount{ bufferMemoryBarrierCount_ }
+ , pBufferMemoryBarriers{ pBufferMemoryBarriers_ }
+ , imageMemoryBarrierCount{ imageMemoryBarrierCount_ }
+ , pImageMemoryBarriers{ pImageMemoryBarriers_ }
{
}
@@ -23069,10 +23069,10 @@ namespace VULKAN_HPP_NAMESPACE
float depthBiasClamp_ = {},
float depthBiasSlopeFactor_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthBiasConstantFactor( depthBiasConstantFactor_ )
- , depthBiasClamp( depthBiasClamp_ )
- , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
+ : pNext{ pNext_ }
+ , depthBiasConstantFactor{ depthBiasConstantFactor_ }
+ , depthBiasClamp{ depthBiasClamp_ }
+ , depthBiasSlopeFactor{ depthBiasSlopeFactor_ }
{
}
@@ -23182,9 +23182,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat,
VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthBiasRepresentation( depthBiasRepresentation_ )
- , depthBiasExact( depthBiasExact_ )
+ : pNext{ pNext_ }
+ , depthBiasRepresentation{ depthBiasRepresentation_ }
+ , depthBiasExact{ depthBiasExact_ }
{
}
@@ -23294,10 +23294,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize range_ = {},
VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , address( address_ )
- , range( range_ )
- , format( format_ )
+ : pNext{ pNext_ }
+ , address{ address_ }
+ , range{ range_ }
+ , format{ format_ }
{
}
@@ -23412,9 +23412,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DescriptorBufferBindingInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress address_ = {},
VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , address( address_ )
- , usage( usage_ )
+ : pNext{ pNext_ }
+ , address{ address_ }
+ , usage{ usage_ }
{
}
@@ -23520,8 +23520,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DescriptorBufferBindingPushDescriptorBufferHandleEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -23617,9 +23617,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT
- : buffer( buffer_ )
- , offset( offset_ )
- , range( range_ )
+ : buffer{ buffer_ }
+ , offset{ offset_ }
+ , range{ range_ }
{
}
@@ -23714,9 +23714,9 @@ namespace VULKAN_HPP_NAMESPACE
DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
- : sampler( sampler_ )
- , imageView( imageView_ )
- , imageLayout( imageLayout_ )
+ : sampler{ sampler_ }
+ , imageView{ imageView_ }
+ , imageLayout{ imageLayout_ }
{
}
@@ -23933,9 +23933,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
VULKAN_HPP_NAMESPACE::DescriptorDataEXT data_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , data( data_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , data{ data_ }
{
}
@@ -24020,8 +24020,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : type( type_ )
- , descriptorCount( descriptorCount_ )
+ : type{ type_ }
+ , descriptorCount{ descriptorCount_ }
{
}
@@ -24110,11 +24110,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t poolSizeCount_ = {},
const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , maxSets( maxSets_ )
- , poolSizeCount( poolSizeCount_ )
- , pPoolSizes( pPoolSizes_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , maxSets{ maxSets_ }
+ , poolSizeCount{ poolSizeCount_ }
+ , pPoolSizes{ pPoolSizes_ }
{
}
@@ -24257,8 +24257,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( uint32_t maxInlineUniformBlockBindings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
+ : pNext{ pNext_ }
+ , maxInlineUniformBlockBindings{ maxInlineUniformBlockBindings_ }
{
}
@@ -24359,10 +24359,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t descriptorSetCount_ = {},
const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorPool( descriptorPool_ )
- , descriptorSetCount( descriptorSetCount_ )
- , pSetLayouts( pSetLayouts_ )
+ : pNext{ pNext_ }
+ , descriptorPool{ descriptorPool_ }
+ , descriptorSetCount{ descriptorSetCount_ }
+ , pSetLayouts{ pSetLayouts_ }
{
}
@@ -24497,9 +24497,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
uint32_t binding_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorSetLayout( descriptorSetLayout_ )
- , binding( binding_ )
+ : pNext{ pNext_ }
+ , descriptorSetLayout{ descriptorSetLayout_ }
+ , binding{ binding_ }
{
}
@@ -24603,11 +24603,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t descriptorCount_ = {},
VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT
- : binding( binding_ )
- , descriptorType( descriptorType_ )
- , descriptorCount( descriptorCount_ )
- , stageFlags( stageFlags_ )
- , pImmutableSamplers( pImmutableSamplers_ )
+ : binding{ binding_ }
+ , descriptorType{ descriptorType_ }
+ , descriptorCount{ descriptorCount_ }
+ , stageFlags{ stageFlags_ }
+ , pImmutableSamplers{ pImmutableSamplers_ }
{
}
@@ -24747,9 +24747,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( uint32_t bindingCount_ = {},
const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , bindingCount( bindingCount_ )
- , pBindingFlags( pBindingFlags_ )
+ : pNext{ pNext_ }
+ , bindingCount{ bindingCount_ }
+ , pBindingFlags{ pBindingFlags_ }
{
}
@@ -24876,10 +24876,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t bindingCount_ = {},
const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , bindingCount( bindingCount_ )
- , pBindings( pBindings_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , bindingCount{ bindingCount_ }
+ , pBindings{ pBindings_ }
{
}
@@ -25014,9 +25014,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
DescriptorSetLayoutHostMappingInfoVALVE( size_t descriptorOffset_ = {}, uint32_t descriptorSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorOffset( descriptorOffset_ )
- , descriptorSize( descriptorSize_ )
+ : pNext{ pNext_ }
+ , descriptorOffset{ descriptorOffset_ }
+ , descriptorSize{ descriptorSize_ }
{
}
@@ -25118,8 +25118,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supported( supported_ )
+ : pNext{ pNext_ }
+ , supported{ supported_ }
{
}
@@ -25204,9 +25204,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {},
const uint32_t * pDescriptorCounts_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorSetCount( descriptorSetCount_ )
- , pDescriptorCounts( pDescriptorCounts_ )
+ : pNext{ pNext_ }
+ , descriptorSetCount{ descriptorSetCount_ }
+ , pDescriptorCounts{ pDescriptorCounts_ }
{
}
@@ -25331,8 +25331,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxVariableDescriptorCount( maxVariableDescriptorCount_ )
+ : pNext{ pNext_ }
+ , maxVariableDescriptorCount{ maxVariableDescriptorCount_ }
{
}
@@ -25419,12 +25419,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
size_t offset_ = {},
size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
- : dstBinding( dstBinding_ )
- , dstArrayElement( dstArrayElement_ )
- , descriptorCount( descriptorCount_ )
- , descriptorType( descriptorType_ )
- , offset( offset_ )
- , stride( stride_ )
+ : dstBinding{ dstBinding_ }
+ , dstArrayElement{ dstArrayElement_ }
+ , descriptorCount{ descriptorCount_ }
+ , descriptorType{ descriptorType_ }
+ , offset{ offset_ }
+ , stride{ stride_ }
{
}
@@ -25552,15 +25552,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
uint32_t set_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
- , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
- , templateType( templateType_ )
- , descriptorSetLayout( descriptorSetLayout_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , pipelineLayout( pipelineLayout_ )
- , set( set_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , descriptorUpdateEntryCount{ descriptorUpdateEntryCount_ }
+ , pDescriptorUpdateEntries{ pDescriptorUpdateEntries_ }
+ , templateType{ templateType_ }
+ , descriptorSetLayout{ descriptorSetLayout_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , pipelineLayout{ pipelineLayout_ }
+ , set{ set_ }
{
}
@@ -25763,11 +25763,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ = VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT::eBind,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , baseAddress( baseAddress_ )
- , size( size_ )
- , bindingType( bindingType_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , baseAddress{ baseAddress_ }
+ , size{ size_ }
+ , bindingType{ bindingType_ }
{
}
@@ -25891,8 +25891,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pCreateInfo( pCreateInfo_ )
+ : pNext{ pNext_ }
+ , pCreateInfo{ pCreateInfo_ }
{
}
@@ -25993,11 +25993,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queueCount_ = {},
const float * pQueuePriorities_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , queueFamilyIndex( queueFamilyIndex_ )
- , queueCount( queueCount_ )
- , pQueuePriorities( pQueuePriorities_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , queueFamilyIndex{ queueFamilyIndex_ }
+ , queueCount{ queueCount_ }
+ , pQueuePriorities{ pQueuePriorities_ }
{
}
@@ -26193,61 +26193,61 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {},
VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {},
VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT
- : robustBufferAccess( robustBufferAccess_ )
- , fullDrawIndexUint32( fullDrawIndexUint32_ )
- , imageCubeArray( imageCubeArray_ )
- , independentBlend( independentBlend_ )
- , geometryShader( geometryShader_ )
- , tessellationShader( tessellationShader_ )
- , sampleRateShading( sampleRateShading_ )
- , dualSrcBlend( dualSrcBlend_ )
- , logicOp( logicOp_ )
- , multiDrawIndirect( multiDrawIndirect_ )
- , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
- , depthClamp( depthClamp_ )
- , depthBiasClamp( depthBiasClamp_ )
- , fillModeNonSolid( fillModeNonSolid_ )
- , depthBounds( depthBounds_ )
- , wideLines( wideLines_ )
- , largePoints( largePoints_ )
- , alphaToOne( alphaToOne_ )
- , multiViewport( multiViewport_ )
- , samplerAnisotropy( samplerAnisotropy_ )
- , textureCompressionETC2( textureCompressionETC2_ )
- , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
- , textureCompressionBC( textureCompressionBC_ )
- , occlusionQueryPrecise( occlusionQueryPrecise_ )
- , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
- , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
- , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
- , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
- , shaderImageGatherExtended( shaderImageGatherExtended_ )
- , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
- , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
- , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
- , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
- , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
- , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
- , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
- , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
- , shaderClipDistance( shaderClipDistance_ )
- , shaderCullDistance( shaderCullDistance_ )
- , shaderFloat64( shaderFloat64_ )
- , shaderInt64( shaderInt64_ )
- , shaderInt16( shaderInt16_ )
- , shaderResourceResidency( shaderResourceResidency_ )
- , shaderResourceMinLod( shaderResourceMinLod_ )
- , sparseBinding( sparseBinding_ )
- , sparseResidencyBuffer( sparseResidencyBuffer_ )
- , sparseResidencyImage2D( sparseResidencyImage2D_ )
- , sparseResidencyImage3D( sparseResidencyImage3D_ )
- , sparseResidency2Samples( sparseResidency2Samples_ )
- , sparseResidency4Samples( sparseResidency4Samples_ )
- , sparseResidency8Samples( sparseResidency8Samples_ )
- , sparseResidency16Samples( sparseResidency16Samples_ )
- , sparseResidencyAliased( sparseResidencyAliased_ )
- , variableMultisampleRate( variableMultisampleRate_ )
- , inheritedQueries( inheritedQueries_ )
+ : robustBufferAccess{ robustBufferAccess_ }
+ , fullDrawIndexUint32{ fullDrawIndexUint32_ }
+ , imageCubeArray{ imageCubeArray_ }
+ , independentBlend{ independentBlend_ }
+ , geometryShader{ geometryShader_ }
+ , tessellationShader{ tessellationShader_ }
+ , sampleRateShading{ sampleRateShading_ }
+ , dualSrcBlend{ dualSrcBlend_ }
+ , logicOp{ logicOp_ }
+ , multiDrawIndirect{ multiDrawIndirect_ }
+ , drawIndirectFirstInstance{ drawIndirectFirstInstance_ }
+ , depthClamp{ depthClamp_ }
+ , depthBiasClamp{ depthBiasClamp_ }
+ , fillModeNonSolid{ fillModeNonSolid_ }
+ , depthBounds{ depthBounds_ }
+ , wideLines{ wideLines_ }
+ , largePoints{ largePoints_ }
+ , alphaToOne{ alphaToOne_ }
+ , multiViewport{ multiViewport_ }
+ , samplerAnisotropy{ samplerAnisotropy_ }
+ , textureCompressionETC2{ textureCompressionETC2_ }
+ , textureCompressionASTC_LDR{ textureCompressionASTC_LDR_ }
+ , textureCompressionBC{ textureCompressionBC_ }
+ , occlusionQueryPrecise{ occlusionQueryPrecise_ }
+ , pipelineStatisticsQuery{ pipelineStatisticsQuery_ }
+ , vertexPipelineStoresAndAtomics{ vertexPipelineStoresAndAtomics_ }
+ , fragmentStoresAndAtomics{ fragmentStoresAndAtomics_ }
+ , shaderTessellationAndGeometryPointSize{ shaderTessellationAndGeometryPointSize_ }
+ , shaderImageGatherExtended{ shaderImageGatherExtended_ }
+ , shaderStorageImageExtendedFormats{ shaderStorageImageExtendedFormats_ }
+ , shaderStorageImageMultisample{ shaderStorageImageMultisample_ }
+ , shaderStorageImageReadWithoutFormat{ shaderStorageImageReadWithoutFormat_ }
+ , shaderStorageImageWriteWithoutFormat{ shaderStorageImageWriteWithoutFormat_ }
+ , shaderUniformBufferArrayDynamicIndexing{ shaderUniformBufferArrayDynamicIndexing_ }
+ , shaderSampledImageArrayDynamicIndexing{ shaderSampledImageArrayDynamicIndexing_ }
+ , shaderStorageBufferArrayDynamicIndexing{ shaderStorageBufferArrayDynamicIndexing_ }
+ , shaderStorageImageArrayDynamicIndexing{ shaderStorageImageArrayDynamicIndexing_ }
+ , shaderClipDistance{ shaderClipDistance_ }
+ , shaderCullDistance{ shaderCullDistance_ }
+ , shaderFloat64{ shaderFloat64_ }
+ , shaderInt64{ shaderInt64_ }
+ , shaderInt16{ shaderInt16_ }
+ , shaderResourceResidency{ shaderResourceResidency_ }
+ , shaderResourceMinLod{ shaderResourceMinLod_ }
+ , sparseBinding{ sparseBinding_ }
+ , sparseResidencyBuffer{ sparseResidencyBuffer_ }
+ , sparseResidencyImage2D{ sparseResidencyImage2D_ }
+ , sparseResidencyImage3D{ sparseResidencyImage3D_ }
+ , sparseResidency2Samples{ sparseResidency2Samples_ }
+ , sparseResidency4Samples{ sparseResidency4Samples_ }
+ , sparseResidency8Samples{ sparseResidency8Samples_ }
+ , sparseResidency16Samples{ sparseResidency16Samples_ }
+ , sparseResidencyAliased{ sparseResidencyAliased_ }
+ , variableMultisampleRate{ variableMultisampleRate_ }
+ , inheritedQueries{ inheritedQueries_ }
{
}
@@ -26860,15 +26860,15 @@ namespace VULKAN_HPP_NAMESPACE
const char * const * ppEnabledExtensionNames_ = {},
const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , queueCreateInfoCount( queueCreateInfoCount_ )
- , pQueueCreateInfos( pQueueCreateInfos_ )
- , enabledLayerCount( enabledLayerCount_ )
- , ppEnabledLayerNames( ppEnabledLayerNames_ )
- , enabledExtensionCount( enabledExtensionCount_ )
- , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
- , pEnabledFeatures( pEnabledFeatures_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , queueCreateInfoCount{ queueCreateInfoCount_ }
+ , pQueueCreateInfos{ pQueueCreateInfos_ }
+ , enabledLayerCount{ enabledLayerCount_ }
+ , ppEnabledLayerNames{ ppEnabledLayerNames_ }
+ , enabledExtensionCount{ enabledExtensionCount_ }
+ , ppEnabledExtensionNames{ ppEnabledExtensionNames_ }
+ , pEnabledFeatures{ pEnabledFeatures_ }
{
}
@@ -27120,10 +27120,10 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {},
void * pUserData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pfnUserCallback( pfnUserCallback_ )
- , pUserData( pUserData_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pfnUserCallback{ pfnUserCallback_ }
+ , pUserData{ pUserData_ }
{
}
@@ -27235,8 +27235,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -27332,8 +27332,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceEvent( deviceEvent_ )
+ : pNext{ pNext_ }
+ , deviceEvent{ deviceEvent_ }
{
}
@@ -27425,9 +27425,9 @@ namespace VULKAN_HPP_NAMESPACE
DeviceFaultAddressInfoEXT( VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType_ = VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT::eNone,
VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision_ = {} ) VULKAN_HPP_NOEXCEPT
- : addressType( addressType_ )
- , reportedAddress( reportedAddress_ )
- , addressPrecision( addressPrecision_ )
+ : addressType{ addressType_ }
+ , reportedAddress{ reportedAddress_ }
+ , addressPrecision{ addressPrecision_ }
{
}
@@ -27525,10 +27525,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t vendorInfoCount_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , addressInfoCount( addressInfoCount_ )
- , vendorInfoCount( vendorInfoCount_ )
- , vendorBinarySize( vendorBinarySize_ )
+ : pNext{ pNext_ }
+ , addressInfoCount{ addressInfoCount_ }
+ , vendorInfoCount{ vendorInfoCount_ }
+ , vendorBinarySize{ vendorBinarySize_ }
{
}
@@ -27637,9 +27637,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
uint64_t vendorFaultCode_ = {},
uint64_t vendorFaultData_ = {} ) VULKAN_HPP_NOEXCEPT
- : description( description_ )
- , vendorFaultCode( vendorFaultCode_ )
- , vendorFaultData( vendorFaultData_ )
+ : description{ description_ }
+ , vendorFaultCode{ vendorFaultCode_ }
+ , vendorFaultData{ vendorFaultData_ }
{
}
@@ -27770,11 +27770,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos_ = {},
void * pVendorBinaryData_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , description( description_ )
- , pAddressInfos( pAddressInfos_ )
- , pVendorInfos( pVendorInfos_ )
- , pVendorBinaryData( pVendorBinaryData_ )
+ : pNext{ pNext_ }
+ , description{ description_ }
+ , pAddressInfos{ pAddressInfos_ }
+ , pVendorInfos{ pVendorInfos_ }
+ , pVendorBinaryData{ pVendorBinaryData_ }
{
}
@@ -27789,10 +27789,10 @@ namespace VULKAN_HPP_NAMESPACE
DeviceFaultInfoEXT & operator=( DeviceFaultInfoEXT const & ) = delete;
DeviceFaultInfoEXT( DeviceFaultInfoEXT && rhs ) VULKAN_HPP_NOEXCEPT
- : pNext( rhs.pNext )
- , pAddressInfos( rhs.pAddressInfos )
- , pVendorInfos( rhs.pVendorInfos )
- , pVendorBinaryData( rhs.pVendorBinaryData )
+ : pNext{ rhs.pNext }
+ , pAddressInfos{ rhs.pAddressInfos }
+ , pVendorInfos{ rhs.pVendorInfos }
+ , pVendorBinaryData{ rhs.pVendorBinaryData }
{
memcpy( description, rhs.description, VK_MAX_DESCRIPTION_SIZE );
@@ -27923,17 +27923,17 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t engineNameOffset_ = {},
uint32_t engineVersion_ = {},
uint32_t apiVersion_ = {} ) VULKAN_HPP_NOEXCEPT
- : headerSize( headerSize_ )
- , headerVersion( headerVersion_ )
- , vendorID( vendorID_ )
- , deviceID( deviceID_ )
- , driverVersion( driverVersion_ )
- , pipelineCacheUUID( pipelineCacheUUID_ )
- , applicationNameOffset( applicationNameOffset_ )
- , applicationVersion( applicationVersion_ )
- , engineNameOffset( engineNameOffset_ )
- , engineVersion( engineVersion_ )
- , apiVersion( apiVersion_ )
+ : headerSize{ headerSize_ }
+ , headerVersion{ headerVersion_ }
+ , vendorID{ vendorID_ }
+ , deviceID{ deviceID_ }
+ , driverVersion{ driverVersion_ }
+ , pipelineCacheUUID{ pipelineCacheUUID_ }
+ , applicationNameOffset{ applicationNameOffset_ }
+ , applicationVersion{ applicationVersion_ }
+ , engineNameOffset{ engineNameOffset_ }
+ , engineVersion{ engineVersion_ }
+ , apiVersion{ apiVersion_ }
{
}
@@ -28110,9 +28110,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , resourceDeviceIndex( resourceDeviceIndex_ )
- , memoryDeviceIndex( memoryDeviceIndex_ )
+ : pNext{ pNext_ }
+ , resourceDeviceIndex{ resourceDeviceIndex_ }
+ , memoryDeviceIndex{ memoryDeviceIndex_ }
{
}
@@ -28217,8 +28217,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceMask( deviceMask_ )
+ : pNext{ pNext_ }
+ , deviceMask{ deviceMask_ }
{
}
@@ -28317,9 +28317,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = {},
const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , physicalDeviceCount( physicalDeviceCount_ )
- , pPhysicalDevices( pPhysicalDevices_ )
+ : pNext{ pNext_ }
+ , physicalDeviceCount{ physicalDeviceCount_ }
+ , pPhysicalDevices{ pPhysicalDevices_ }
{
}
@@ -28445,9 +28445,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( std::array<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const & presentMask_ = {},
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentMask( presentMask_ )
- , modes( modes_ )
+ : pNext{ pNext_ }
+ , presentMask{ presentMask_ }
+ , modes{ modes_ }
{
}
@@ -28536,10 +28536,10 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pDeviceMasks_ = {},
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pDeviceMasks( pDeviceMasks_ )
- , mode( mode_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pDeviceMasks{ pDeviceMasks_ }
+ , mode{ mode_ }
{
}
@@ -28674,10 +28674,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t deviceRenderAreaCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceMask( deviceMask_ )
- , deviceRenderAreaCount( deviceRenderAreaCount_ )
- , pDeviceRenderAreas( pDeviceRenderAreas_ )
+ : pNext{ pNext_ }
+ , deviceMask{ deviceMask_ }
+ , deviceRenderAreaCount{ deviceRenderAreaCount_ }
+ , pDeviceRenderAreas{ pDeviceRenderAreas_ }
{
}
@@ -28819,13 +28819,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreCount_ = {},
const uint32_t * pSignalSemaphoreDeviceIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreCount( waitSemaphoreCount_ )
- , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
- , commandBufferCount( commandBufferCount_ )
- , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
- , signalSemaphoreCount( signalSemaphoreCount_ )
- , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreCount{ waitSemaphoreCount_ }
+ , pWaitSemaphoreDeviceIndices{ pWaitSemaphoreDeviceIndices_ }
+ , commandBufferCount{ commandBufferCount_ }
+ , pCommandBufferDeviceMasks{ pCommandBufferDeviceMasks_ }
+ , signalSemaphoreCount{ signalSemaphoreCount_ }
+ , pSignalSemaphoreDeviceIndices{ pSignalSemaphoreDeviceIndices_ }
{
}
@@ -29021,8 +29021,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , modes( modes_ )
+ : pNext{ pNext_ }
+ , modes{ modes_ }
{
}
@@ -29130,20 +29130,20 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pQueueFamilyIndices_ = {},
VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , imageType( imageType_ )
- , format( format_ )
- , extent( extent_ )
- , mipLevels( mipLevels_ )
- , arrayLayers( arrayLayers_ )
- , samples( samples_ )
- , tiling( tiling_ )
- , usage( usage_ )
- , sharingMode( sharingMode_ )
- , queueFamilyIndexCount( queueFamilyIndexCount_ )
- , pQueueFamilyIndices( pQueueFamilyIndices_ )
- , initialLayout( initialLayout_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , imageType{ imageType_ }
+ , format{ format_ }
+ , extent{ extent_ }
+ , mipLevels{ mipLevels_ }
+ , arrayLayers{ arrayLayers_ }
+ , samples{ samples_ }
+ , tiling{ tiling_ }
+ , usage{ usage_ }
+ , sharingMode{ sharingMode_ }
+ , queueFamilyIndexCount{ queueFamilyIndexCount_ }
+ , pQueueFamilyIndices{ pQueueFamilyIndices_ }
+ , initialLayout{ initialLayout_ }
{
}
@@ -29395,9 +29395,9 @@ namespace VULKAN_HPP_NAMESPACE
DeviceImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {},
VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pCreateInfo( pCreateInfo_ )
- , planeAspect( planeAspect_ )
+ : pNext{ pNext_ }
+ , pCreateInfo{ pCreateInfo_ }
+ , planeAspect{ planeAspect_ }
{
}
@@ -29504,8 +29504,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageSubresource( imageSubresource_ )
+ : pNext{ pNext_ }
+ , imageSubresource{ imageSubresource_ }
{
}
@@ -29604,9 +29604,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {},
const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pCreateInfo( pCreateInfo_ )
- , pSubresource( pSubresource_ )
+ : pNext{ pNext_ }
+ , pCreateInfo{ pCreateInfo_ }
+ , pSubresource{ pSubresource_ }
{
}
@@ -29713,8 +29713,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
{
}
@@ -29813,8 +29813,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(
VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , overallocationBehavior( overallocationBehavior_ )
+ : pNext{ pNext_ }
+ , overallocationBehavior{ overallocationBehavior_ }
{
}
@@ -29918,14 +29918,14 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t objectHandle_ = {},
uint32_t heapIndex_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , type( type_ )
- , memoryObjectId( memoryObjectId_ )
- , size( size_ )
- , objectType( objectType_ )
- , objectHandle( objectHandle_ )
- , heapIndex( heapIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , type{ type_ }
+ , memoryObjectId{ memoryObjectId_ }
+ , size{ size_ }
+ , objectType{ objectType_ }
+ , objectHandle{ objectHandle_ }
+ , heapIndex{ heapIndex_ }
{
}
@@ -30066,8 +30066,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( uint32_t privateDataSlotRequestCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , privateDataSlotRequestCount( privateDataSlotRequestCount_ )
+ : pNext{ pNext_ }
+ , privateDataSlotRequestCount{ privateDataSlotRequestCount_ }
{
}
@@ -30166,8 +30166,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
DeviceQueueGlobalPriorityCreateInfoKHR( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , globalPriority( globalPriority_ )
+ : pNext{ pNext_ }
+ , globalPriority{ globalPriority_ }
{
}
@@ -30268,10 +30268,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queueFamilyIndex_ = {},
uint32_t queueIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , queueFamilyIndex( queueFamilyIndex_ )
- , queueIndex( queueIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , queueFamilyIndex{ queueFamilyIndex_ }
+ , queueIndex{ queueIndex_ }
{
}
@@ -30382,8 +30382,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DeviceQueueShaderCoreControlCreateInfoARM( uint32_t shaderCoreCount_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderCoreCount( shaderCoreCount_ )
+ : pNext{ pNext_ }
+ , shaderCoreCount{ shaderCoreCount_ }
{
}
@@ -30480,9 +30480,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DirectDriverLoadingInfoLUNARG( VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags_ = {},
PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pfnGetInstanceProcAddr( pfnGetInstanceProcAddr_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pfnGetInstanceProcAddr{ pfnGetInstanceProcAddr_ }
{
}
@@ -30588,10 +30588,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t driverCount_ = {},
const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mode( mode_ )
- , driverCount( driverCount_ )
- , pDrivers( pDrivers_ )
+ : pNext{ pNext_ }
+ , mode{ mode_ }
+ , driverCount{ driverCount_ }
+ , pDrivers{ pDrivers_ }
{
}
@@ -30724,10 +30724,10 @@ namespace VULKAN_HPP_NAMESPACE
IDirectFB * dfb_ = {},
IDirectFBSurface * surface_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , dfb( dfb_ )
- , surface( surface_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , dfb{ dfb_ }
+ , surface{ surface_ }
{
}
@@ -30841,9 +30841,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( uint32_t count_ = {},
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos_ = {},
uint64_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
- : count( count_ )
- , infos( infos_ )
- , stride( stride_ )
+ : count{ count_ }
+ , infos{ infos_ }
+ , stride{ stride_ }
{
}
@@ -30922,10 +30922,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t payloadCount_ = {},
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads_ = {},
uint64_t payloadStride_ = {} ) VULKAN_HPP_NOEXCEPT
- : nodeIndex( nodeIndex_ )
- , payloadCount( payloadCount_ )
- , payloads( payloads_ )
- , payloadStride( payloadStride_ )
+ : nodeIndex{ nodeIndex_ }
+ , payloadCount{ payloadCount_ }
+ , payloads{ payloads_ }
+ , payloadStride{ payloadStride_ }
{
}
@@ -31007,9 +31007,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
- , z( z_ )
+ : x{ x_ }
+ , y{ y_ }
+ , z{ z_ }
{
}
@@ -31106,8 +31106,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displayEvent( displayEvent_ )
+ : pNext{ pNext_ }
+ , displayEvent{ displayEvent_ }
{
}
@@ -31198,8 +31198,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT
- : visibleRegion( visibleRegion_ )
- , refreshRate( refreshRate_ )
+ : visibleRegion{ visibleRegion_ }
+ , refreshRate{ refreshRate_ }
{
}
@@ -31289,9 +31289,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {},
VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , parameters( parameters_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , parameters{ parameters_ }
{
}
@@ -31394,8 +31394,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT
- : displayMode( displayMode_ )
- , parameters( parameters_ )
+ : displayMode{ displayMode_ }
+ , parameters{ parameters_ }
{
}
@@ -31470,8 +31470,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displayModeProperties( displayModeProperties_ )
+ : pNext{ pNext_ }
+ , displayModeProperties{ displayModeProperties_ }
{
}
@@ -31553,8 +31553,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , localDimmingSupport( localDimmingSupport_ )
+ : pNext{ pNext_ }
+ , localDimmingSupport{ localDimmingSupport_ }
{
}
@@ -31640,15 +31640,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {},
VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {},
VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT
- : supportedAlpha( supportedAlpha_ )
- , minSrcPosition( minSrcPosition_ )
- , maxSrcPosition( maxSrcPosition_ )
- , minSrcExtent( minSrcExtent_ )
- , maxSrcExtent( maxSrcExtent_ )
- , minDstPosition( minDstPosition_ )
- , maxDstPosition( maxDstPosition_ )
- , minDstExtent( minDstExtent_ )
- , maxDstExtent( maxDstExtent_ )
+ : supportedAlpha{ supportedAlpha_ }
+ , minSrcPosition{ minSrcPosition_ }
+ , maxSrcPosition{ maxSrcPosition_ }
+ , minSrcExtent{ minSrcExtent_ }
+ , maxSrcExtent{ maxSrcExtent_ }
+ , minDstPosition{ minDstPosition_ }
+ , maxDstPosition{ maxDstPosition_ }
+ , minDstExtent{ minDstExtent_ }
+ , maxDstExtent{ maxDstExtent_ }
{
}
@@ -31740,8 +31740,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , capabilities( capabilities_ )
+ : pNext{ pNext_ }
+ , capabilities{ capabilities_ }
{
}
@@ -31823,9 +31823,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mode( mode_ )
- , planeIndex( planeIndex_ )
+ : pNext{ pNext_ }
+ , mode{ mode_ }
+ , planeIndex{ planeIndex_ }
{
}
@@ -31925,8 +31925,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {},
uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT
- : currentDisplay( currentDisplay_ )
- , currentStackIndex( currentStackIndex_ )
+ : currentDisplay{ currentDisplay_ }
+ , currentStackIndex{ currentStackIndex_ }
{
}
@@ -32001,8 +32001,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displayPlaneProperties( displayPlaneProperties_ )
+ : pNext{ pNext_ }
+ , displayPlaneProperties{ displayPlaneProperties_ }
{
}
@@ -32084,8 +32084,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , powerState( powerState_ )
+ : pNext{ pNext_ }
+ , powerState{ powerState_ }
{
}
@@ -32182,10 +32182,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {},
VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcRect( srcRect_ )
- , dstRect( dstRect_ )
- , persistent( persistent_ )
+ : pNext{ pNext_ }
+ , srcRect{ srcRect_ }
+ , dstRect{ dstRect_ }
+ , persistent{ persistent_ }
{
}
@@ -32301,13 +32301,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {},
VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT
- : display( display_ )
- , displayName( displayName_ )
- , physicalDimensions( physicalDimensions_ )
- , physicalResolution( physicalResolution_ )
- , supportedTransforms( supportedTransforms_ )
- , planeReorderPossible( planeReorderPossible_ )
- , persistentContent( persistentContent_ )
+ : display{ display_ }
+ , displayName{ displayName_ }
+ , physicalDimensions{ physicalDimensions_ }
+ , physicalResolution{ physicalResolution_ }
+ , supportedTransforms{ supportedTransforms_ }
+ , planeReorderPossible{ planeReorderPossible_ }
+ , persistentContent{ persistentContent_ }
{
}
@@ -32411,8 +32411,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displayProperties( displayProperties_ )
+ : pNext{ pNext_ }
+ , displayProperties{ displayProperties_ }
{
}
@@ -32502,15 +32502,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , displayMode( displayMode_ )
- , planeIndex( planeIndex_ )
- , planeStackIndex( planeStackIndex_ )
- , transform( transform_ )
- , globalAlpha( globalAlpha_ )
- , alphaMode( alphaMode_ )
- , imageExtent( imageExtent_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , displayMode{ displayMode_ }
+ , planeIndex{ planeIndex_ }
+ , planeStackIndex{ planeStackIndex_ }
+ , transform{ transform_ }
+ , globalAlpha{ globalAlpha_ }
+ , alphaMode{ alphaMode_ }
+ , imageExtent{ imageExtent_ }
{
}
@@ -32666,11 +32666,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstIndex_ = {},
int32_t vertexOffset_ = {},
uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
- : indexCount( indexCount_ )
- , instanceCount( instanceCount_ )
- , firstIndex( firstIndex_ )
- , vertexOffset( vertexOffset_ )
- , firstInstance( firstInstance_ )
+ : indexCount{ indexCount_ }
+ , instanceCount{ instanceCount_ }
+ , firstIndex{ firstIndex_ }
+ , vertexOffset{ vertexOffset_ }
+ , firstInstance{ firstInstance_ }
{
}
@@ -32780,10 +32780,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t instanceCount_ = {},
uint32_t firstVertex_ = {},
uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
- : vertexCount( vertexCount_ )
- , instanceCount( instanceCount_ )
- , firstVertex( firstVertex_ )
- , firstInstance( firstInstance_ )
+ : vertexCount{ vertexCount_ }
+ , instanceCount{ instanceCount_ }
+ , firstVertex{ firstVertex_ }
+ , firstInstance{ firstInstance_ }
{
}
@@ -32883,9 +32883,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
DrawMeshTasksIndirectCommandEXT( uint32_t groupCountX_ = {}, uint32_t groupCountY_ = {}, uint32_t groupCountZ_ = {} ) VULKAN_HPP_NOEXCEPT
- : groupCountX( groupCountX_ )
- , groupCountY( groupCountY_ )
- , groupCountZ( groupCountZ_ )
+ : groupCountX{ groupCountX_ }
+ , groupCountY{ groupCountY_ }
+ , groupCountZ{ groupCountZ_ }
{
}
@@ -32977,8 +32977,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {}, uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT
- : taskCount( taskCount_ )
- , firstTask( firstTask_ )
+ : taskCount{ taskCount_ }
+ , firstTask{ firstTask_ }
{
}
@@ -33065,9 +33065,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( uint64_t drmFormatModifier_ = {},
uint32_t drmFormatModifierPlaneCount_ = {},
VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
- : drmFormatModifier( drmFormatModifier_ )
- , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
- , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
+ : drmFormatModifier{ drmFormatModifier_ }
+ , drmFormatModifierPlaneCount{ drmFormatModifierPlaneCount_ }
+ , drmFormatModifierTilingFeatures{ drmFormatModifierTilingFeatures_ }
{
}
@@ -33142,9 +33142,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {},
uint32_t drmFormatModifierPlaneCount_ = {},
VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
- : drmFormatModifier( drmFormatModifier_ )
- , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
- , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
+ : drmFormatModifier{ drmFormatModifier_ }
+ , drmFormatModifierPlaneCount{ drmFormatModifierPlaneCount_ }
+ , drmFormatModifierTilingFeatures{ drmFormatModifierTilingFeatures_ }
{
}
@@ -33222,9 +33222,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( uint32_t drmFormatModifierCount_ = {},
VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifierCount( drmFormatModifierCount_ )
- , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
+ : pNext{ pNext_ }
+ , drmFormatModifierCount{ drmFormatModifierCount_ }
+ , pDrmFormatModifierProperties{ pDrmFormatModifierProperties_ }
{
}
@@ -33320,9 +33320,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = {},
VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifierCount( drmFormatModifierCount_ )
- , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
+ : pNext{ pNext_ }
+ , drmFormatModifierCount{ drmFormatModifierCount_ }
+ , pDrmFormatModifierProperties{ pDrmFormatModifierProperties_ }
{
}
@@ -33416,8 +33416,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -33511,9 +33511,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t libraryCount_ = {},
const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , libraryCount( libraryCount_ )
- , pLibraries( pLibraries_ )
+ : pNext{ pNext_ }
+ , libraryCount{ libraryCount_ }
+ , pLibraries{ pLibraries_ }
{
}
@@ -33641,14 +33641,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
int32_t basePipelineIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stageCount( stageCount_ )
- , pStages( pStages_ )
- , pLibraryInfo( pLibraryInfo_ )
- , layout( layout_ )
- , basePipelineHandle( basePipelineHandle_ )
- , basePipelineIndex( basePipelineIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stageCount{ stageCount_ }
+ , pStages{ pStages_ }
+ , pLibraryInfo{ pLibraryInfo_ }
+ , layout{ layout_ }
+ , basePipelineHandle{ basePipelineHandle_ }
+ , basePipelineIndex{ basePipelineIndex_ }
{
}
@@ -33831,8 +33831,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , size{ size_ }
{
}
@@ -33929,8 +33929,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -34031,10 +34031,10 @@ namespace VULKAN_HPP_NAMESPACE
DWORD dwAccess_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pAttributes( pAttributes_ )
- , dwAccess( dwAccess_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , pAttributes{ pAttributes_ }
+ , dwAccess{ dwAccess_ }
+ , name{ name_ }
{
}
@@ -34145,8 +34145,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -34244,8 +34244,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -34345,10 +34345,10 @@ namespace VULKAN_HPP_NAMESPACE
DWORD dwAccess_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pAttributes( pAttributes_ )
- , dwAccess( dwAccess_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , pAttributes{ pAttributes_ }
+ , dwAccess{ dwAccess_ }
+ , name{ name_ }
{
}
@@ -34460,9 +34460,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pAttributes( pAttributes_ )
- , dwAccess( dwAccess_ )
+ : pNext{ pNext_ }
+ , pAttributes{ pAttributes_ }
+ , dwAccess{ dwAccess_ }
{
}
@@ -34568,9 +34568,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
MTLBuffer_id mtlBuffer_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , mtlBuffer( mtlBuffer_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , mtlBuffer{ mtlBuffer_ }
{
}
@@ -34676,9 +34676,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( VULKAN_HPP_NAMESPACE::Queue queue_ = {},
MTLCommandQueue_id mtlCommandQueue_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queue( queue_ )
- , mtlCommandQueue( mtlCommandQueue_ )
+ : pNext{ pNext_ }
+ , queue{ queue_ }
+ , mtlCommandQueue{ mtlCommandQueue_ }
{
}
@@ -34782,8 +34782,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( MTLDevice_id mtlDevice_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mtlDevice( mtlDevice_ )
+ : pNext{ pNext_ }
+ , mtlDevice{ mtlDevice_ }
{
}
@@ -34881,9 +34881,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
ExportMetalIOSurfaceInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {}, IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , ioSurface( ioSurface_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , ioSurface{ ioSurface_ }
{
}
@@ -34989,8 +34989,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT(
VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , exportObjectType( exportObjectType_ )
+ : pNext{ pNext_ }
+ , exportObjectType{ exportObjectType_ }
{
}
@@ -35087,7 +35087,7 @@ namespace VULKAN_HPP_NAMESPACE
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectsInfoEXT;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
+ VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext{ pNext_ } {}
VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -35178,10 +35178,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Event event_ = {},
MTLSharedEvent_id mtlSharedEvent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , event( event_ )
- , mtlSharedEvent( mtlSharedEvent_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , event{ event_ }
+ , mtlSharedEvent{ mtlSharedEvent_ }
{
}
@@ -35302,12 +35302,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
MTLTexture_id mtlTexture_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , imageView( imageView_ )
- , bufferView( bufferView_ )
- , plane( plane_ )
- , mtlTexture( mtlTexture_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , imageView{ imageView_ }
+ , bufferView{ bufferView_ }
+ , plane{ plane_ }
+ , mtlTexture{ mtlTexture_ }
{
}
@@ -35439,8 +35439,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -35542,10 +35542,10 @@ namespace VULKAN_HPP_NAMESPACE
DWORD dwAccess_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pAttributes( pAttributes_ )
- , dwAccess( dwAccess_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , pAttributes{ pAttributes_ }
+ , dwAccess{ dwAccess_ }
+ , name{ name_ }
{
}
@@ -35653,8 +35653,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & extensionName_ = {},
uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT
- : extensionName( extensionName_ )
- , specVersion( specVersion_ )
+ : extensionName{ extensionName_ }
+ , specVersion{ specVersion_ }
{
}
@@ -35742,9 +35742,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
- : externalMemoryFeatures( externalMemoryFeatures_ )
- , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
- , compatibleHandleTypes( compatibleHandleTypes_ )
+ : externalMemoryFeatures{ externalMemoryFeatures_ }
+ , exportFromImportedHandleTypes{ exportFromImportedHandleTypes_ }
+ , compatibleHandleTypes{ compatibleHandleTypes_ }
{
}
@@ -35825,8 +35825,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalBufferProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalMemoryProperties( externalMemoryProperties_ )
+ : pNext{ pNext_ }
+ , externalMemoryProperties{ externalMemoryProperties_ }
{
}
@@ -35912,10 +35912,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {},
VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
- , compatibleHandleTypes( compatibleHandleTypes_ )
- , externalFenceFeatures( externalFenceFeatures_ )
+ : pNext{ pNext_ }
+ , exportFromImportedHandleTypes{ exportFromImportedHandleTypes_ }
+ , compatibleHandleTypes{ compatibleHandleTypes_ }
+ , externalFenceFeatures{ externalFenceFeatures_ }
{
}
@@ -36006,8 +36006,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalFormat( externalFormat_ )
+ : pNext{ pNext_ }
+ , externalFormat{ externalFormat_ }
{
}
@@ -36104,8 +36104,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalFormatQNX( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalFormat( externalFormat_ )
+ : pNext{ pNext_ }
+ , externalFormat{ externalFormat_ }
{
}
@@ -36199,8 +36199,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalMemoryProperties( externalMemoryProperties_ )
+ : pNext{ pNext_ }
+ , externalMemoryProperties{ externalMemoryProperties_ }
{
}
@@ -36284,11 +36284,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxArrayLayers_ = {},
VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT
- : maxExtent( maxExtent_ )
- , maxMipLevels( maxMipLevels_ )
- , maxArrayLayers( maxArrayLayers_ )
- , sampleCounts( sampleCounts_ )
- , maxResourceSize( maxResourceSize_ )
+ : maxExtent{ maxExtent_ }
+ , maxMipLevels{ maxMipLevels_ }
+ , maxArrayLayers{ maxArrayLayers_ }
+ , sampleCounts{ sampleCounts_ }
+ , maxResourceSize{ maxResourceSize_ }
{
}
@@ -36371,10 +36371,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
- : imageFormatProperties( imageFormatProperties_ )
- , externalMemoryFeatures( externalMemoryFeatures_ )
- , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
- , compatibleHandleTypes( compatibleHandleTypes_ )
+ : imageFormatProperties{ imageFormatProperties_ }
+ , externalMemoryFeatures{ externalMemoryFeatures_ }
+ , exportFromImportedHandleTypes{ exportFromImportedHandleTypes_ }
+ , compatibleHandleTypes{ compatibleHandleTypes_ }
{
}
@@ -36455,8 +36455,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , acquireUnmodifiedMemory( acquireUnmodifiedMemory_ )
+ : pNext{ pNext_ }
+ , acquireUnmodifiedMemory{ acquireUnmodifiedMemory_ }
{
}
@@ -36553,8 +36553,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -36653,8 +36653,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -36753,8 +36753,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleTypes( handleTypes_ )
+ : pNext{ pNext_ }
+ , handleTypes{ handleTypes_ }
{
}
@@ -36853,10 +36853,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {},
VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
- , compatibleHandleTypes( compatibleHandleTypes_ )
- , externalSemaphoreFeatures( externalSemaphoreFeatures_ )
+ : pNext{ pNext_ }
+ , exportFromImportedHandleTypes{ exportFromImportedHandleTypes_ }
+ , compatibleHandleTypes{ compatibleHandleTypes_ }
+ , externalSemaphoreFeatures{ externalSemaphoreFeatures_ }
{
}
@@ -36946,8 +36946,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -37042,9 +37042,9 @@ namespace VULKAN_HPP_NAMESPACE
FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fence( fence_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , fence{ fence_ }
+ , handleType{ handleType_ }
{
}
@@ -37150,9 +37150,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Fence fence_ = {},
VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fence( fence_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , fence{ fence_ }
+ , handleType{ handleType_ }
{
}
@@ -37260,9 +37260,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {},
VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , filterCubic( filterCubic_ )
- , filterCubicMinmax( filterCubicMinmax_ )
+ : pNext{ pNext_ }
+ , filterCubic{ filterCubic_ }
+ , filterCubicMinmax{ filterCubicMinmax_ }
{
}
@@ -37343,9 +37343,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {},
VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {},
VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
- : linearTilingFeatures( linearTilingFeatures_ )
- , optimalTilingFeatures( optimalTilingFeatures_ )
- , bufferFeatures( bufferFeatures_ )
+ : linearTilingFeatures{ linearTilingFeatures_ }
+ , optimalTilingFeatures{ optimalTilingFeatures_ }
+ , bufferFeatures{ bufferFeatures_ }
{
}
@@ -37420,8 +37420,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , formatProperties( formatProperties_ )
+ : pNext{ pNext_ }
+ , formatProperties{ formatProperties_ }
{
}
@@ -37504,10 +37504,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures_ = {},
VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , linearTilingFeatures( linearTilingFeatures_ )
- , optimalTilingFeatures( optimalTilingFeatures_ )
- , bufferFeatures( bufferFeatures_ )
+ : pNext{ pNext_ }
+ , linearTilingFeatures{ linearTilingFeatures_ }
+ , optimalTilingFeatures{ optimalTilingFeatures_ }
+ , bufferFeatures{ bufferFeatures_ }
{
}
@@ -37596,9 +37596,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ = {},
VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ )
- , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
+ : pNext{ pNext_ }
+ , pFragmentShadingRateAttachment{ pFragmentShadingRateAttachment_ }
+ , shadingRateAttachmentTexelSize{ shadingRateAttachmentTexelSize_ }
{
}
@@ -37715,16 +37715,16 @@ namespace VULKAN_HPP_NAMESPACE
size_t tagSize_ = {},
const void * pTag_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , frameID( frameID_ )
- , imageCount( imageCount_ )
- , pImages( pImages_ )
- , bufferCount( bufferCount_ )
- , pBuffers( pBuffers_ )
- , tagName( tagName_ )
- , tagSize( tagSize_ )
- , pTag( pTag_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , frameID{ frameID_ }
+ , imageCount{ imageCount_ }
+ , pImages{ pImages_ }
+ , bufferCount{ bufferCount_ }
+ , pBuffers{ pBuffers_ }
+ , tagName{ tagName_ }
+ , tagSize{ tagSize_ }
+ , pTag{ pTag_ }
{
}
@@ -37942,14 +37942,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t viewFormatCount_ = {},
const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , usage( usage_ )
- , width( width_ )
- , height( height_ )
- , layerCount( layerCount_ )
- , viewFormatCount( viewFormatCount_ )
- , pViewFormats( pViewFormats_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , usage{ usage_ }
+ , width{ width_ }
+ , height{ height_ }
+ , layerCount{ layerCount_ }
+ , viewFormatCount{ viewFormatCount_ }
+ , pViewFormats{ pViewFormats_ }
{
}
@@ -38129,9 +38129,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( uint32_t attachmentImageInfoCount_ = {},
const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentImageInfoCount( attachmentImageInfoCount_ )
- , pAttachmentImageInfos( pAttachmentImageInfos_ )
+ : pNext{ pNext_ }
+ , attachmentImageInfoCount{ attachmentImageInfoCount_ }
+ , pAttachmentImageInfos{ pAttachmentImageInfos_ }
{
}
@@ -38269,14 +38269,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t height_ = {},
uint32_t layers_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , renderPass( renderPass_ )
- , attachmentCount( attachmentCount_ )
- , pAttachments( pAttachments_ )
- , width( width_ )
- , height( height_ )
- , layers( layers_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , renderPass{ renderPass_ }
+ , attachmentCount{ attachmentCount_ }
+ , pAttachments{ pAttachments_ }
+ , width{ width_ }
+ , height{ height_ }
+ , layers{ layers_ }
{
}
@@ -38458,11 +38458,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {},
VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , coverageReductionMode( coverageReductionMode_ )
- , rasterizationSamples( rasterizationSamples_ )
- , depthStencilSamples( depthStencilSamples_ )
- , colorSamples( colorSamples_ )
+ : pNext{ pNext_ }
+ , coverageReductionMode{ coverageReductionMode_ }
+ , rasterizationSamples{ rasterizationSamples_ }
+ , depthStencilSamples{ depthStencilSamples_ }
+ , colorSamples{ colorSamples_ }
{
}
@@ -38550,8 +38550,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT
- : buffer( buffer_ )
- , offset( offset_ )
+ : buffer{ buffer_ }
+ , offset{ offset_ }
{
}
@@ -38653,20 +38653,20 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , pipeline( pipeline_ )
- , indirectCommandsLayout( indirectCommandsLayout_ )
- , streamCount( streamCount_ )
- , pStreams( pStreams_ )
- , sequencesCount( sequencesCount_ )
- , preprocessBuffer( preprocessBuffer_ )
- , preprocessOffset( preprocessOffset_ )
- , preprocessSize( preprocessSize_ )
- , sequencesCountBuffer( sequencesCountBuffer_ )
- , sequencesCountOffset( sequencesCountOffset_ )
- , sequencesIndexBuffer( sequencesIndexBuffer_ )
- , sequencesIndexOffset( sequencesIndexOffset_ )
+ : pNext{ pNext_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , pipeline{ pipeline_ }
+ , indirectCommandsLayout{ indirectCommandsLayout_ }
+ , streamCount{ streamCount_ }
+ , pStreams{ pStreams_ }
+ , sequencesCount{ sequencesCount_ }
+ , preprocessBuffer{ preprocessBuffer_ }
+ , preprocessOffset{ preprocessOffset_ }
+ , preprocessSize{ preprocessSize_ }
+ , sequencesCountBuffer{ sequencesCountBuffer_ }
+ , sequencesCountOffset{ sequencesCountOffset_ }
+ , sequencesIndexBuffer{ sequencesIndexBuffer_ }
+ , sequencesIndexOffset{ sequencesIndexOffset_ }
{
}
@@ -38926,11 +38926,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
uint32_t maxSequencesCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , pipeline( pipeline_ )
- , indirectCommandsLayout( indirectCommandsLayout_ )
- , maxSequencesCount( maxSequencesCount_ )
+ : pNext{ pNext_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , pipeline{ pipeline_ }
+ , indirectCommandsLayout{ indirectCommandsLayout_ }
+ , maxSequencesCount{ maxSequencesCount_ }
{
}
@@ -39068,21 +39068,21 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t gpuRenderStartTimeUs_ = {},
uint64_t gpuRenderEndTimeUs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentID( presentID_ )
- , inputSampleTimeUs( inputSampleTimeUs_ )
- , simStartTimeUs( simStartTimeUs_ )
- , simEndTimeUs( simEndTimeUs_ )
- , renderSubmitStartTimeUs( renderSubmitStartTimeUs_ )
- , renderSubmitEndTimeUs( renderSubmitEndTimeUs_ )
- , presentStartTimeUs( presentStartTimeUs_ )
- , presentEndTimeUs( presentEndTimeUs_ )
- , driverStartTimeUs( driverStartTimeUs_ )
- , driverEndTimeUs( driverEndTimeUs_ )
- , osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ )
- , osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ )
- , gpuRenderStartTimeUs( gpuRenderStartTimeUs_ )
- , gpuRenderEndTimeUs( gpuRenderEndTimeUs_ )
+ : pNext{ pNext_ }
+ , presentID{ presentID_ }
+ , inputSampleTimeUs{ inputSampleTimeUs_ }
+ , simStartTimeUs{ simStartTimeUs_ }
+ , simEndTimeUs{ simEndTimeUs_ }
+ , renderSubmitStartTimeUs{ renderSubmitStartTimeUs_ }
+ , renderSubmitEndTimeUs{ renderSubmitEndTimeUs_ }
+ , presentStartTimeUs{ presentStartTimeUs_ }
+ , presentEndTimeUs{ presentEndTimeUs_ }
+ , driverStartTimeUs{ driverStartTimeUs_ }
+ , driverEndTimeUs{ driverEndTimeUs_ }
+ , osRenderQueueStartTimeUs{ osRenderQueueStartTimeUs_ }
+ , osRenderQueueEndTimeUs{ osRenderQueueEndTimeUs_ }
+ , gpuRenderStartTimeUs{ gpuRenderStartTimeUs_ }
+ , gpuRenderEndTimeUs{ gpuRenderEndTimeUs_ }
{
}
@@ -39213,9 +39213,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( uint32_t timingCount_ = {},
VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , timingCount( timingCount_ )
- , pTimings( pTimings_ )
+ : pNext{ pNext_ }
+ , timingCount{ timingCount_ }
+ , pTimings{ pTimings_ }
{
}
@@ -39335,9 +39335,9 @@ namespace VULKAN_HPP_NAMESPACE
VertexInputBindingDescription( uint32_t binding_ = {},
uint32_t stride_ = {},
VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT
- : binding( binding_ )
- , stride( stride_ )
- , inputRate( inputRate_ )
+ : binding{ binding_ }
+ , stride{ stride_ }
+ , inputRate{ inputRate_ }
{
}
@@ -39432,10 +39432,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t binding_ = {},
VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT
- : location( location_ )
- , binding( binding_ )
- , format( format_ )
- , offset( offset_ )
+ : location{ location_ }
+ , binding{ binding_ }
+ , format{ format_ }
+ , offset{ offset_ }
{
}
@@ -39542,12 +39542,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t vertexAttributeDescriptionCount_ = {},
const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
- , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
- , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
- , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , vertexBindingDescriptionCount{ vertexBindingDescriptionCount_ }
+ , pVertexBindingDescriptions{ pVertexBindingDescriptions_ }
+ , vertexAttributeDescriptionCount{ vertexAttributeDescriptionCount_ }
+ , pVertexAttributeDescriptions{ pVertexAttributeDescriptions_ }
{
}
@@ -39725,10 +39725,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList,
VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , topology( topology_ )
- , primitiveRestartEnable( primitiveRestartEnable_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , topology{ topology_ }
+ , primitiveRestartEnable{ primitiveRestartEnable_ }
{
}
@@ -39846,9 +39846,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {},
uint32_t patchControlPoints_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , patchControlPoints( patchControlPoints_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , patchControlPoints{ patchControlPoints_ }
{
}
@@ -39959,12 +39959,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t scissorCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , viewportCount( viewportCount_ )
- , pViewports( pViewports_ )
- , scissorCount( scissorCount_ )
- , pScissors( pScissors_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , viewportCount{ viewportCount_ }
+ , pViewports{ pViewports_ }
+ , scissorCount{ scissorCount_ }
+ , pScissors{ pScissors_ }
{
}
@@ -40140,18 +40140,18 @@ namespace VULKAN_HPP_NAMESPACE
float depthBiasSlopeFactor_ = {},
float lineWidth_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , depthClampEnable( depthClampEnable_ )
- , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
- , polygonMode( polygonMode_ )
- , cullMode( cullMode_ )
- , frontFace( frontFace_ )
- , depthBiasEnable( depthBiasEnable_ )
- , depthBiasConstantFactor( depthBiasConstantFactor_ )
- , depthBiasClamp( depthBiasClamp_ )
- , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
- , lineWidth( lineWidth_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , depthClampEnable{ depthClampEnable_ }
+ , rasterizerDiscardEnable{ rasterizerDiscardEnable_ }
+ , polygonMode{ polygonMode_ }
+ , cullMode{ cullMode_ }
+ , frontFace{ frontFace_ }
+ , depthBiasEnable{ depthBiasEnable_ }
+ , depthBiasConstantFactor{ depthBiasConstantFactor_ }
+ , depthBiasClamp{ depthBiasClamp_ }
+ , depthBiasSlopeFactor{ depthBiasSlopeFactor_ }
+ , lineWidth{ lineWidth_ }
{
}
@@ -40353,14 +40353,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {},
VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , rasterizationSamples( rasterizationSamples_ )
- , sampleShadingEnable( sampleShadingEnable_ )
- , minSampleShading( minSampleShading_ )
- , pSampleMask( pSampleMask_ )
- , alphaToCoverageEnable( alphaToCoverageEnable_ )
- , alphaToOneEnable( alphaToOneEnable_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , rasterizationSamples{ rasterizationSamples_ }
+ , sampleShadingEnable{ sampleShadingEnable_ }
+ , minSampleShading{ minSampleShading_ }
+ , pSampleMask{ pSampleMask_ }
+ , alphaToCoverageEnable{ alphaToCoverageEnable_ }
+ , alphaToOneEnable{ alphaToOneEnable_ }
{
}
@@ -40513,13 +40513,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t compareMask_ = {},
uint32_t writeMask_ = {},
uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT
- : failOp( failOp_ )
- , passOp( passOp_ )
- , depthFailOp( depthFailOp_ )
- , compareOp( compareOp_ )
- , compareMask( compareMask_ )
- , writeMask( writeMask_ )
- , reference( reference_ )
+ : failOp{ failOp_ }
+ , passOp{ passOp_ }
+ , depthFailOp{ depthFailOp_ }
+ , compareOp{ compareOp_ }
+ , compareMask{ compareMask_ }
+ , writeMask{ writeMask_ }
+ , reference{ reference_ }
{
}
@@ -40656,17 +40656,17 @@ namespace VULKAN_HPP_NAMESPACE
float minDepthBounds_ = {},
float maxDepthBounds_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , depthTestEnable( depthTestEnable_ )
- , depthWriteEnable( depthWriteEnable_ )
- , depthCompareOp( depthCompareOp_ )
- , depthBoundsTestEnable( depthBoundsTestEnable_ )
- , stencilTestEnable( stencilTestEnable_ )
- , front( front_ )
- , back( back_ )
- , minDepthBounds( minDepthBounds_ )
- , maxDepthBounds( maxDepthBounds_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , depthTestEnable{ depthTestEnable_ }
+ , depthWriteEnable{ depthWriteEnable_ }
+ , depthCompareOp{ depthCompareOp_ }
+ , depthBoundsTestEnable{ depthBoundsTestEnable_ }
+ , stencilTestEnable{ stencilTestEnable_ }
+ , front{ front_ }
+ , back{ back_ }
+ , minDepthBounds{ minDepthBounds_ }
+ , maxDepthBounds{ maxDepthBounds_ }
{
}
@@ -40855,14 +40855,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT
- : blendEnable( blendEnable_ )
- , srcColorBlendFactor( srcColorBlendFactor_ )
- , dstColorBlendFactor( dstColorBlendFactor_ )
- , colorBlendOp( colorBlendOp_ )
- , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
- , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
- , alphaBlendOp( alphaBlendOp_ )
- , colorWriteMask( colorWriteMask_ )
+ : blendEnable{ blendEnable_ }
+ , srcColorBlendFactor{ srcColorBlendFactor_ }
+ , dstColorBlendFactor{ dstColorBlendFactor_ }
+ , colorBlendOp{ colorBlendOp_ }
+ , srcAlphaBlendFactor{ srcAlphaBlendFactor_ }
+ , dstAlphaBlendFactor{ dstAlphaBlendFactor_ }
+ , alphaBlendOp{ alphaBlendOp_ }
+ , colorWriteMask{ colorWriteMask_ }
{
}
@@ -41013,13 +41013,13 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ = {},
std::array<float, 4> const & blendConstants_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , logicOpEnable( logicOpEnable_ )
- , logicOp( logicOp_ )
- , attachmentCount( attachmentCount_ )
- , pAttachments( pAttachments_ )
- , blendConstants( blendConstants_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , logicOpEnable{ logicOpEnable_ }
+ , logicOp{ logicOp_ }
+ , attachmentCount{ attachmentCount_ }
+ , pAttachments{ pAttachments_ }
+ , blendConstants{ blendConstants_ }
{
}
@@ -41191,10 +41191,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t dynamicStateCount_ = {},
const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , dynamicStateCount( dynamicStateCount_ )
- , pDynamicStates( pDynamicStates_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , dynamicStateCount{ dynamicStateCount_ }
+ , pDynamicStates{ pDynamicStates_ }
{
}
@@ -41344,24 +41344,24 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
int32_t basePipelineIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stageCount( stageCount_ )
- , pStages( pStages_ )
- , pVertexInputState( pVertexInputState_ )
- , pInputAssemblyState( pInputAssemblyState_ )
- , pTessellationState( pTessellationState_ )
- , pViewportState( pViewportState_ )
- , pRasterizationState( pRasterizationState_ )
- , pMultisampleState( pMultisampleState_ )
- , pDepthStencilState( pDepthStencilState_ )
- , pColorBlendState( pColorBlendState_ )
- , pDynamicState( pDynamicState_ )
- , layout( layout_ )
- , renderPass( renderPass_ )
- , subpass( subpass_ )
- , basePipelineHandle( basePipelineHandle_ )
- , basePipelineIndex( basePipelineIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stageCount{ stageCount_ }
+ , pStages{ pStages_ }
+ , pVertexInputState{ pVertexInputState_ }
+ , pInputAssemblyState{ pInputAssemblyState_ }
+ , pTessellationState{ pTessellationState_ }
+ , pViewportState{ pViewportState_ }
+ , pRasterizationState{ pRasterizationState_ }
+ , pMultisampleState{ pMultisampleState_ }
+ , pDepthStencilState{ pDepthStencilState_ }
+ , pColorBlendState{ pColorBlendState_ }
+ , pDynamicState{ pDynamicState_ }
+ , layout{ layout_ }
+ , renderPass{ renderPass_ }
+ , subpass{ subpass_ }
+ , basePipelineHandle{ basePipelineHandle_ }
+ , basePipelineIndex{ basePipelineIndex_ }
{
}
@@ -41670,8 +41670,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -41770,11 +41770,11 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stageCount( stageCount_ )
- , pStages( pStages_ )
- , pVertexInputState( pVertexInputState_ )
- , pTessellationState( pTessellationState_ )
+ : pNext{ pNext_ }
+ , stageCount{ stageCount_ }
+ , pStages{ pStages_ }
+ , pVertexInputState{ pVertexInputState_ }
+ , pTessellationState{ pTessellationState_ }
{
}
@@ -41927,11 +41927,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t pipelineCount_ = {},
const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , groupCount( groupCount_ )
- , pGroups( pGroups_ )
- , pipelineCount( pipelineCount_ )
- , pPipelines( pPipelines_ )
+ : pNext{ pNext_ }
+ , groupCount{ groupCount_ }
+ , pGroups{ pGroups_ }
+ , pipelineCount{ pipelineCount_ }
+ , pPipelines{ pPipelines_ }
{
}
@@ -42085,8 +42085,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
+ : x{ x_ }
+ , y{ y_ }
{
}
@@ -42179,15 +42179,15 @@ namespace VULKAN_HPP_NAMESPACE
float maxContentLightLevel_ = {},
float maxFrameAverageLightLevel_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displayPrimaryRed( displayPrimaryRed_ )
- , displayPrimaryGreen( displayPrimaryGreen_ )
- , displayPrimaryBlue( displayPrimaryBlue_ )
- , whitePoint( whitePoint_ )
- , maxLuminance( maxLuminance_ )
- , minLuminance( minLuminance_ )
- , maxContentLightLevel( maxContentLightLevel_ )
- , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
+ : pNext{ pNext_ }
+ , displayPrimaryRed{ displayPrimaryRed_ }
+ , displayPrimaryGreen{ displayPrimaryGreen_ }
+ , displayPrimaryBlue{ displayPrimaryBlue_ }
+ , whitePoint{ whitePoint_ }
+ , maxLuminance{ maxLuminance_ }
+ , minLuminance{ minLuminance_ }
+ , maxContentLightLevel{ maxContentLightLevel_ }
+ , maxFrameAverageLightLevel{ maxFrameAverageLightLevel_ }
{
}
@@ -42350,8 +42350,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -42448,9 +42448,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess_ = {},
VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , optimalDeviceAccess( optimalDeviceAccess_ )
- , identicalMemoryLayout( identicalMemoryLayout_ )
+ : pNext{ pNext_ }
+ , optimalDeviceAccess{ optimalDeviceAccess_ }
+ , identicalMemoryLayout{ identicalMemoryLayout_ }
{
}
@@ -42537,11 +42537,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , oldLayout( oldLayout_ )
- , newLayout( newLayout_ )
- , subresourceRange( subresourceRange_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , oldLayout{ oldLayout_ }
+ , newLayout{ newLayout_ }
+ , subresourceRange{ subresourceRange_ }
{
}
@@ -42667,9 +42667,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {},
const void * pView_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pView( pView_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pView{ pView_ }
{
}
@@ -42763,6 +42763,102 @@ namespace VULKAN_HPP_NAMESPACE
};
#endif /*VK_USE_PLATFORM_IOS_MVK*/
+ struct ImageAlignmentControlCreateInfoMESA
+ {
+ using NativeType = VkImageAlignmentControlCreateInfoMESA;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageAlignmentControlCreateInfoMESA;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR ImageAlignmentControlCreateInfoMESA( uint32_t maximumRequestedAlignment_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext{ pNext_ }
+ , maximumRequestedAlignment{ maximumRequestedAlignment_ }
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR ImageAlignmentControlCreateInfoMESA( ImageAlignmentControlCreateInfoMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ ImageAlignmentControlCreateInfoMESA( VkImageAlignmentControlCreateInfoMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ : ImageAlignmentControlCreateInfoMESA( *reinterpret_cast<ImageAlignmentControlCreateInfoMESA const *>( &rhs ) )
+ {
+ }
+
+ ImageAlignmentControlCreateInfoMESA & operator=( ImageAlignmentControlCreateInfoMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ ImageAlignmentControlCreateInfoMESA & operator=( VkImageAlignmentControlCreateInfoMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 ImageAlignmentControlCreateInfoMESA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 ImageAlignmentControlCreateInfoMESA & setMaximumRequestedAlignment( uint32_t maximumRequestedAlignment_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maximumRequestedAlignment = maximumRequestedAlignment_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkImageAlignmentControlCreateInfoMESA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkImageAlignmentControlCreateInfoMESA *>( this );
+ }
+
+ operator VkImageAlignmentControlCreateInfoMESA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkImageAlignmentControlCreateInfoMESA *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, maximumRequestedAlignment );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( ImageAlignmentControlCreateInfoMESA const & ) const = default;
+#else
+ bool operator==( ImageAlignmentControlCreateInfoMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maximumRequestedAlignment == rhs.maximumRequestedAlignment );
+# endif
+ }
+
+ bool operator!=( ImageAlignmentControlCreateInfoMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageAlignmentControlCreateInfoMESA;
+ const void * pNext = {};
+ uint32_t maximumRequestedAlignment = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::eImageAlignmentControlCreateInfoMESA>
+ {
+ using Type = ImageAlignmentControlCreateInfoMESA;
+ };
+
struct ImageBlit
{
using NativeType = VkImageBlit;
@@ -42772,10 +42868,10 @@ namespace VULKAN_HPP_NAMESPACE
std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ = {},
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcSubresource( srcSubresource_ )
- , srcOffsets( srcOffsets_ )
- , dstSubresource( dstSubresource_ )
- , dstOffsets( dstOffsets_ )
+ : srcSubresource{ srcSubresource_ }
+ , srcOffsets{ srcOffsets_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffsets{ dstOffsets_ }
{
}
@@ -42878,8 +42974,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
{
}
@@ -42977,10 +43073,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t compressionControlPlaneCount_ = {},
VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , compressionControlPlaneCount( compressionControlPlaneCount_ )
- , pFixedRateFlags( pFixedRateFlags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , compressionControlPlaneCount{ compressionControlPlaneCount_ }
+ , pFixedRateFlags{ pFixedRateFlags_ }
{
}
@@ -43119,9 +43215,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags_ = {},
VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageCompressionFlags( imageCompressionFlags_ )
- , imageCompressionFixedRateFlags( imageCompressionFixedRateFlags_ )
+ : pNext{ pNext_ }
+ , imageCompressionFlags{ imageCompressionFlags_ }
+ , imageCompressionFixedRateFlags{ imageCompressionFixedRateFlags_ }
{
}
@@ -43214,13 +43310,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t colorSpaceCount_ = {},
const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageCreateInfo( imageCreateInfo_ )
- , requiredFormatFeatures( requiredFormatFeatures_ )
- , flags( flags_ )
- , sysmemPixelFormat( sysmemPixelFormat_ )
- , colorSpaceCount( colorSpaceCount_ )
- , pColorSpaces( pColorSpaces_ )
+ : pNext{ pNext_ }
+ , imageCreateInfo{ imageCreateInfo_ }
+ , requiredFormatFeatures{ requiredFormatFeatures_ }
+ , flags{ flags_ }
+ , sysmemPixelFormat{ sysmemPixelFormat_ }
+ , colorSpaceCount{ colorSpaceCount_ }
+ , pColorSpaces{ pColorSpaces_ }
{
}
@@ -43396,11 +43492,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , formatConstraintsCount( formatConstraintsCount_ )
- , pFormatConstraints( pFormatConstraints_ )
- , bufferCollectionConstraints( bufferCollectionConstraints_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , formatConstraintsCount{ formatConstraintsCount_ }
+ , pFormatConstraints{ pFormatConstraints_ }
+ , bufferCollectionConstraints{ bufferCollectionConstraints_ }
+ , flags{ flags_ }
{
}
@@ -43552,11 +43648,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcSubresource( srcSubresource_ )
- , srcOffset( srcOffset_ )
- , dstSubresource( dstSubresource_ )
- , dstOffset( dstOffset_ )
- , extent( extent_ )
+ : srcSubresource{ srcSubresource_ }
+ , srcOffset{ srcOffset_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffset{ dstOffset_ }
+ , extent{ extent_ }
{
}
@@ -43668,11 +43764,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT
- : offset( offset_ )
- , size( size_ )
- , rowPitch( rowPitch_ )
- , arrayPitch( arrayPitch_ )
- , depthPitch( depthPitch_ )
+ : offset{ offset_ }
+ , size{ size_ }
+ , rowPitch{ rowPitch_ }
+ , arrayPitch{ arrayPitch_ }
+ , depthPitch{ depthPitch_ }
{
}
@@ -43786,10 +43882,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t drmFormatModifierPlaneCount_ = {},
const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifier( drmFormatModifier_ )
- , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
- , pPlaneLayouts( pPlaneLayouts_ )
+ : pNext{ pNext_ }
+ , drmFormatModifier{ drmFormatModifier_ }
+ , drmFormatModifierPlaneCount{ drmFormatModifierPlaneCount_ }
+ , pPlaneLayouts{ pPlaneLayouts_ }
{
}
@@ -43930,9 +44026,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {},
const uint64_t * pDrmFormatModifiers_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifierCount( drmFormatModifierCount_ )
- , pDrmFormatModifiers( pDrmFormatModifiers_ )
+ : pNext{ pNext_ }
+ , drmFormatModifierCount{ drmFormatModifierCount_ }
+ , pDrmFormatModifiers{ pDrmFormatModifiers_ }
{
}
@@ -44053,8 +44149,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifier( drmFormatModifier_ )
+ : pNext{ pNext_ }
+ , drmFormatModifier{ drmFormatModifier_ }
{
}
@@ -44137,9 +44233,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {},
const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , viewFormatCount( viewFormatCount_ )
- , pViewFormats( pViewFormats_ )
+ : pNext{ pNext_ }
+ , viewFormatCount{ viewFormatCount_ }
+ , pViewFormats{ pViewFormats_ }
{
}
@@ -44262,8 +44358,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageFormatProperties2( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageFormatProperties( imageFormatProperties_ )
+ : pNext{ pNext_ }
+ , imageFormatProperties{ imageFormatProperties_ }
{
}
@@ -44354,15 +44450,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Image image_ = {},
VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcAccessMask( srcAccessMask_ )
- , dstAccessMask( dstAccessMask_ )
- , oldLayout( oldLayout_ )
- , newLayout( newLayout_ )
- , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
- , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
- , image( image_ )
- , subresourceRange( subresourceRange_ )
+ : pNext{ pNext_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , oldLayout{ oldLayout_ }
+ , newLayout{ newLayout_ }
+ , srcQueueFamilyIndex{ srcQueueFamilyIndex_ }
+ , dstQueueFamilyIndex{ dstQueueFamilyIndex_ }
+ , image{ image_ }
+ , subresourceRange{ subresourceRange_ }
{
}
@@ -44515,8 +44611,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
{
}
@@ -44616,9 +44712,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {},
zx_handle_t imagePipeHandle_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , imagePipeHandle( imagePipeHandle_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , imagePipeHandle{ imagePipeHandle_ }
{
}
@@ -44735,8 +44831,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , planeAspect( planeAspect_ )
+ : pNext{ pNext_ }
+ , planeAspect{ planeAspect_ }
{
}
@@ -44834,11 +44930,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcSubresource( srcSubresource_ )
- , srcOffset( srcOffset_ )
- , dstSubresource( dstSubresource_ )
- , dstOffset( dstOffset_ )
- , extent( extent_ )
+ : srcSubresource{ srcSubresource_ }
+ , srcOffset{ srcOffset_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffset{ dstOffset_ }
+ , extent{ extent_ }
{
}
@@ -44954,12 +45050,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcSubresource( srcSubresource_ )
- , srcOffset( srcOffset_ )
- , dstSubresource( dstSubresource_ )
- , dstOffset( dstOffset_ )
- , extent( extent_ )
+ : pNext{ pNext_ }
+ , srcSubresource{ srcSubresource_ }
+ , srcOffset{ srcOffset_ }
+ , dstSubresource{ dstSubresource_ }
+ , dstOffset{ dstOffset_ }
+ , extent{ extent_ }
{
}
@@ -45088,8 +45184,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
{
}
@@ -45187,8 +45283,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stencilUsage( stencilUsage_ )
+ : pNext{ pNext_ }
+ , stencilUsage{ stencilUsage_ }
{
}
@@ -45285,8 +45381,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchain( swapchain_ )
+ : pNext{ pNext_ }
+ , swapchain{ swapchain_ }
{
}
@@ -45382,8 +45478,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , decodeMode( decodeMode_ )
+ : pNext{ pNext_ }
+ , decodeMode{ decodeMode_ }
{
}
@@ -45480,9 +45576,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceAddress( deviceAddress_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , deviceAddress{ deviceAddress_ }
+ , size{ size_ }
{
}
@@ -45566,8 +45662,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageViewCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageView( imageView_ )
+ : pNext{ pNext_ }
+ , imageView{ imageView_ }
{
}
@@ -45668,13 +45764,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , image( image_ )
- , viewType( viewType_ )
- , format( format_ )
- , components( components_ )
- , subresourceRange( subresourceRange_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , image{ image_ }
+ , viewType{ viewType_ }
+ , format{ format_ }
+ , components{ components_ }
+ , subresourceRange{ subresourceRange_ }
{
}
@@ -45815,10 +45911,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageView( imageView_ )
- , descriptorType( descriptorType_ )
- , sampler( sampler_ )
+ : pNext{ pNext_ }
+ , imageView{ imageView_ }
+ , descriptorType{ descriptorType_ }
+ , sampler{ sampler_ }
{
}
@@ -45932,8 +46028,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( float minLod_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minLod( minLod_ )
+ : pNext{ pNext_ }
+ , minLod{ minLod_ }
{
}
@@ -46031,10 +46127,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D filterSize_ = {},
uint32_t numPhases_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , filterCenter( filterCenter_ )
- , filterSize( filterSize_ )
- , numPhases( numPhases_ )
+ : pNext{ pNext_ }
+ , filterCenter{ filterCenter_ }
+ , filterSize{ filterSize_ }
+ , numPhases{ numPhases_ }
{
}
@@ -46149,9 +46245,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
ImageViewSlicedCreateInfoEXT( uint32_t sliceOffset_ = {}, uint32_t sliceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sliceOffset( sliceOffset_ )
- , sliceCount( sliceCount_ )
+ : pNext{ pNext_ }
+ , sliceOffset{ sliceOffset_ }
+ , sliceCount{ sliceCount_ }
{
}
@@ -46253,8 +46349,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , usage( usage_ )
+ : pNext{ pNext_ }
+ , usage{ usage_ }
{
}
@@ -46352,8 +46448,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -46454,11 +46550,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
int fd_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fence( fence_ )
- , flags( flags_ )
- , handleType( handleType_ )
- , fd( fd_ )
+ : pNext{ pNext_ }
+ , fence{ fence_ }
+ , flags{ flags_ }
+ , handleType{ handleType_ }
+ , fd{ fd_ }
{
}
@@ -46587,12 +46683,12 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE handle_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fence( fence_ )
- , flags( flags_ )
- , handleType( handleType_ )
- , handle( handle_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , fence{ fence_ }
+ , flags{ flags_ }
+ , handleType{ handleType_ }
+ , handle{ handle_ }
+ , name{ name_ }
{
}
@@ -46727,9 +46823,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
uint32_t index_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , collection( collection_ )
- , index( index_ )
+ : pNext{ pNext_ }
+ , collection{ collection_ }
+ , index{ index_ }
{
}
@@ -46835,9 +46931,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
int fd_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
- , fd( fd_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
+ , fd{ fd_ }
{
}
@@ -46942,9 +47038,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
void * pHostPointer_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
- , pHostPointer( pHostPointer_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
+ , pHostPointer{ pHostPointer_ }
{
}
@@ -47053,10 +47149,10 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE handle_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
- , handle( handle_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
+ , handle{ handle_ }
+ , name{ name_ }
{
}
@@ -47174,9 +47270,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {},
HANDLE handle_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
- , handle( handle_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
+ , handle{ handle_ }
{
}
@@ -47284,9 +47380,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
zx_handle_t handle_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
- , handle( handle_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
+ , handle{ handle_ }
{
}
@@ -47403,8 +47499,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( MTLBuffer_id mtlBuffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mtlBuffer( mtlBuffer_ )
+ : pNext{ pNext_ }
+ , mtlBuffer{ mtlBuffer_ }
{
}
@@ -47501,8 +47597,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , ioSurface( ioSurface_ )
+ : pNext{ pNext_ }
+ , ioSurface{ ioSurface_ }
{
}
@@ -47599,8 +47695,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( MTLSharedEvent_id mtlSharedEvent_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mtlSharedEvent( mtlSharedEvent_ )
+ : pNext{ pNext_ }
+ , mtlSharedEvent{ mtlSharedEvent_ }
{
}
@@ -47699,9 +47795,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
MTLTexture_id mtlTexture_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , plane( plane_ )
- , mtlTexture( mtlTexture_ )
+ : pNext{ pNext_ }
+ , plane{ plane_ }
+ , mtlTexture{ mtlTexture_ }
{
}
@@ -47805,8 +47901,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( struct _screen_buffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , buffer{ buffer_ }
{
}
@@ -47907,11 +48003,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
int fd_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , flags( flags_ )
- , handleType( handleType_ )
- , fd( fd_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , flags{ flags_ }
+ , handleType{ handleType_ }
+ , fd{ fd_ }
{
}
@@ -48041,12 +48137,12 @@ namespace VULKAN_HPP_NAMESPACE
HANDLE handle_ = {},
LPCWSTR name_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , flags( flags_ )
- , handleType( handleType_ )
- , handle( handle_ )
- , name( name_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , flags{ flags_ }
+ , handleType{ handleType_ }
+ , handle{ handle_ }
+ , name{ name_ }
{
}
@@ -48184,11 +48280,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
zx_handle_t zirconHandle_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , flags( flags_ )
- , handleType( handleType_ )
- , zirconHandle( zirconHandle_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , flags{ flags_ }
+ , handleType{ handleType_ }
+ , zirconHandle{ zirconHandle_ }
{
}
@@ -48338,20 +48434,20 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ = {},
const uint32_t * pIndexTypeValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , tokenType( tokenType_ )
- , stream( stream_ )
- , offset( offset_ )
- , vertexBindingUnit( vertexBindingUnit_ )
- , vertexDynamicStride( vertexDynamicStride_ )
- , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
- , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
- , pushconstantOffset( pushconstantOffset_ )
- , pushconstantSize( pushconstantSize_ )
- , indirectStateFlags( indirectStateFlags_ )
- , indexTypeCount( indexTypeCount_ )
- , pIndexTypes( pIndexTypes_ )
- , pIndexTypeValues( pIndexTypeValues_ )
+ : pNext{ pNext_ }
+ , tokenType{ tokenType_ }
+ , stream{ stream_ }
+ , offset{ offset_ }
+ , vertexBindingUnit{ vertexBindingUnit_ }
+ , vertexDynamicStride{ vertexDynamicStride_ }
+ , pushconstantPipelineLayout{ pushconstantPipelineLayout_ }
+ , pushconstantShaderStageFlags{ pushconstantShaderStageFlags_ }
+ , pushconstantOffset{ pushconstantOffset_ }
+ , pushconstantSize{ pushconstantSize_ }
+ , indirectStateFlags{ indirectStateFlags_ }
+ , indexTypeCount{ indexTypeCount_ }
+ , pIndexTypes{ pIndexTypes_ }
+ , pIndexTypeValues{ pIndexTypeValues_ }
{
}
@@ -48634,13 +48730,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t streamCount_ = {},
const uint32_t * pStreamStrides_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , tokenCount( tokenCount_ )
- , pTokens( pTokens_ )
- , streamCount( streamCount_ )
- , pStreamStrides( pStreamStrides_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , tokenCount{ tokenCount_ }
+ , pTokens{ pTokens_ }
+ , streamCount{ streamCount_ }
+ , pStreamStrides{ pStreamStrides_ }
{
}
@@ -48818,8 +48914,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void * pUserData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pUserData( pUserData_ )
+ : pNext{ pNext_ }
+ , pUserData{ pUserData_ }
{
}
@@ -48913,9 +49009,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( uint32_t subpass_ = {},
uint32_t inputAttachmentIndex_ = {},
VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT
- : subpass( subpass_ )
- , inputAttachmentIndex( inputAttachmentIndex_ )
- , aspectMask( aspectMask_ )
+ : subpass{ subpass_ }
+ , inputAttachmentIndex{ inputAttachmentIndex_ }
+ , aspectMask{ aspectMask_ }
{
}
@@ -49018,13 +49114,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t enabledExtensionCount_ = {},
const char * const * ppEnabledExtensionNames_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pApplicationInfo( pApplicationInfo_ )
- , enabledLayerCount( enabledLayerCount_ )
- , ppEnabledLayerNames( ppEnabledLayerNames_ )
- , enabledExtensionCount( enabledExtensionCount_ )
- , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pApplicationInfo{ pApplicationInfo_ }
+ , enabledLayerCount{ enabledLayerCount_ }
+ , ppEnabledLayerNames{ ppEnabledLayerNames_ }
+ , enabledExtensionCount{ enabledExtensionCount_ }
+ , ppEnabledExtensionNames{ ppEnabledExtensionNames_ }
{
}
@@ -49230,9 +49326,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
LatencySleepInfoNV( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , signalSemaphore( signalSemaphore_ )
- , value( value_ )
+ : pNext{ pNext_ }
+ , signalSemaphore{ signalSemaphore_ }
+ , value{ value_ }
{
}
@@ -49334,10 +49430,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ = {},
uint32_t minimumIntervalUs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , lowLatencyMode( lowLatencyMode_ )
- , lowLatencyBoost( lowLatencyBoost_ )
- , minimumIntervalUs( minimumIntervalUs_ )
+ : pNext{ pNext_ }
+ , lowLatencyMode{ lowLatencyMode_ }
+ , lowLatencyBoost{ lowLatencyBoost_ }
+ , minimumIntervalUs{ minimumIntervalUs_ }
{
}
@@ -49451,8 +49547,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( uint64_t presentID_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentID( presentID_ )
+ : pNext{ pNext_ }
+ , presentID{ presentID_ }
{
}
@@ -49549,9 +49645,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( uint32_t presentModeCount_ = {},
VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentModeCount( presentModeCount_ )
- , pPresentModes( pPresentModes_ )
+ : pNext{ pNext_ }
+ , presentModeCount{ presentModeCount_ }
+ , pPresentModes{ pPresentModes_ }
{
}
@@ -49671,10 +49767,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t specVersion_ = {},
uint32_t implementationVersion_ = {},
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {} ) VULKAN_HPP_NOEXCEPT
- : layerName( layerName_ )
- , specVersion( specVersion_ )
- , implementationVersion( implementationVersion_ )
- , description( description_ )
+ : layerName{ layerName_ }
+ , specVersion{ specVersion_ }
+ , implementationVersion{ implementationVersion_ }
+ , description{ description_ }
{
}
@@ -49780,11 +49876,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT type_ = VULKAN_HPP_NAMESPACE::LayerSettingTypeEXT::eBool32,
uint32_t valueCount_ = {},
const void * pValues_ = {} ) VULKAN_HPP_NOEXCEPT
- : pLayerName( pLayerName_ )
- , pSettingName( pSettingName_ )
- , type( type_ )
- , valueCount( valueCount_ )
- , pValues( pValues_ )
+ : pLayerName{ pLayerName_ }
+ , pSettingName{ pSettingName_ }
+ , type{ type_ }
+ , valueCount{ valueCount_ }
+ , pValues{ pValues_ }
{
}
@@ -49931,9 +50027,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR LayerSettingsCreateInfoEXT( uint32_t settingCount_ = {},
const VULKAN_HPP_NAMESPACE::LayerSettingEXT * pSettings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , settingCount( settingCount_ )
- , pSettings( pSettings_ )
+ : pNext{ pNext_ }
+ , settingCount{ settingCount_ }
+ , pSettings{ pSettings_ }
{
}
@@ -50056,9 +50152,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {},
const void * pView_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pView( pView_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pView{ pView_ }
{
}
@@ -50165,10 +50261,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , offset( offset_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -50280,9 +50376,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {},
uint32_t deviceMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , deviceMask( deviceMask_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , deviceMask{ deviceMask_ }
{
}
@@ -50388,9 +50484,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
uint32_t memoryTypeIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , allocationSize( allocationSize_ )
- , memoryTypeIndex( memoryTypeIndex_ )
+ : pNext{ pNext_ }
+ , allocationSize{ allocationSize_ }
+ , memoryTypeIndex{ memoryTypeIndex_ }
{
}
@@ -50491,9 +50587,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcAccessMask( srcAccessMask_ )
- , dstAccessMask( dstAccessMask_ )
+ : pNext{ pNext_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstAccessMask{ dstAccessMask_ }
{
}
@@ -50597,9 +50693,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image( image_ )
- , buffer( buffer_ )
+ : pNext{ pNext_ }
+ , image{ image_ }
+ , buffer{ buffer_ }
{
}
@@ -50705,9 +50801,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {},
VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , prefersDedicatedAllocation( prefersDedicatedAllocation_ )
- , requiresDedicatedAllocation( requiresDedicatedAllocation_ )
+ : pNext{ pNext_ }
+ , prefersDedicatedAllocation{ prefersDedicatedAllocation_ }
+ , requiresDedicatedAllocation{ requiresDedicatedAllocation_ }
{
}
@@ -50792,8 +50888,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -50876,8 +50972,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
{
}
@@ -50976,9 +51072,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , handleType{ handleType_ }
{
}
@@ -51083,9 +51179,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , handleType{ handleType_ }
{
}
@@ -51195,9 +51291,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , handleType{ handleType_ }
{
}
@@ -51308,9 +51404,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memory( memory_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , memory{ memory_ }
+ , handleType{ handleType_ }
{
}
@@ -51414,8 +51510,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
- : size( size_ )
- , flags( flags_ )
+ : size{ size_ }
+ , flags{ flags_ }
{
}
@@ -51486,8 +51582,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -51572,11 +51668,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , memory( memory_ )
- , offset( offset_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , memory{ memory_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -51695,8 +51791,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryMapPlacedInfoEXT( void * pPlacedAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pPlacedAddress( pPlacedAddress_ )
+ : pNext{ pNext_ }
+ , pPlacedAddress{ pPlacedAddress_ }
{
}
@@ -51791,8 +51887,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , opaqueCaptureAddress( opaqueCaptureAddress_ )
+ : pNext{ pNext_ }
+ , opaqueCaptureAddress{ opaqueCaptureAddress_ }
{
}
@@ -51889,8 +51985,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , priority( priority_ )
+ : pNext{ pNext_ }
+ , priority{ priority_ }
{
}
@@ -51984,9 +52080,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {},
uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
- : size( size_ )
- , alignment( alignment_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : size{ size_ }
+ , alignment{ alignment_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -52058,8 +52154,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryRequirements( memoryRequirements_ )
+ : pNext{ pNext_ }
+ , memoryRequirements{ memoryRequirements_ }
{
}
@@ -52138,8 +52234,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT
- : propertyFlags( propertyFlags_ )
- , heapIndex( heapIndex_ )
+ : propertyFlags{ propertyFlags_ }
+ , heapIndex{ heapIndex_ }
{
}
@@ -52212,9 +52308,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ = {},
VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , memory( memory_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , memory{ memory_ }
{
}
@@ -52317,8 +52413,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -52401,8 +52497,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -52487,9 +52583,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {},
const CAMetalLayer * pLayer_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pLayer( pLayer_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pLayer{ pLayer_ }
{
}
@@ -52606,18 +52702,18 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , flags( flags_ )
- , mode( mode_ )
- , dstMicromap( dstMicromap_ )
- , usageCountsCount( usageCountsCount_ )
- , pUsageCounts( pUsageCounts_ )
- , ppUsageCounts( ppUsageCounts_ )
- , data( data_ )
- , scratchData( scratchData_ )
- , triangleArray( triangleArray_ )
- , triangleArrayStride( triangleArrayStride_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , flags{ flags_ }
+ , mode{ mode_ }
+ , dstMicromap{ dstMicromap_ }
+ , usageCountsCount{ usageCountsCount_ }
+ , pUsageCounts{ pUsageCounts_ }
+ , ppUsageCounts{ ppUsageCounts_ }
+ , data{ data_ }
+ , scratchData{ scratchData_ }
+ , triangleArray{ triangleArray_ }
+ , triangleArrayStride{ triangleArrayStride_ }
{
}
@@ -52837,10 +52933,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {},
VULKAN_HPP_NAMESPACE::Bool32 discardable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , micromapSize( micromapSize_ )
- , buildScratchSize( buildScratchSize_ )
- , discardable( discardable_ )
+ : pNext{ pNext_ }
+ , micromapSize{ micromapSize_ }
+ , buildScratchSize{ buildScratchSize_ }
+ , discardable{ discardable_ }
{
}
@@ -52960,13 +53056,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap,
VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , createFlags( createFlags_ )
- , buffer( buffer_ )
- , offset( offset_ )
- , size( size_ )
- , type( type_ )
- , deviceAddress( deviceAddress_ )
+ : pNext{ pNext_ }
+ , createFlags{ createFlags_ }
+ , buffer{ buffer_ }
+ , offset{ offset_ }
+ , size{ size_ }
+ , type{ type_ }
+ , deviceAddress{ deviceAddress_ }
{
}
@@ -53101,9 +53197,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MicromapTriangleEXT( uint32_t dataOffset_ = {}, uint16_t subdivisionLevel_ = {}, uint16_t format_ = {} ) VULKAN_HPP_NOEXCEPT
- : dataOffset( dataOffset_ )
- , subdivisionLevel( subdivisionLevel_ )
- , format( format_ )
+ : dataOffset{ dataOffset_ }
+ , subdivisionLevel{ subdivisionLevel_ }
+ , format{ format_ }
{
}
@@ -53197,8 +53293,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MicromapVersionInfoEXT( const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pVersionData( pVersionData_ )
+ : pNext{ pNext_ }
+ , pVersionData{ pVersionData_ }
{
}
@@ -53290,9 +53386,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( uint32_t firstIndex_ = {}, uint32_t indexCount_ = {}, int32_t vertexOffset_ = {} ) VULKAN_HPP_NOEXCEPT
- : firstIndex( firstIndex_ )
- , indexCount( indexCount_ )
- , vertexOffset( vertexOffset_ )
+ : firstIndex{ firstIndex_ }
+ , indexCount{ indexCount_ }
+ , vertexOffset{ vertexOffset_ }
{
}
@@ -53384,8 +53480,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( uint32_t firstVertex_ = {}, uint32_t vertexCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : firstVertex( firstVertex_ )
- , vertexCount( vertexCount_ )
+ : firstVertex{ firstVertex_ }
+ , vertexCount{ vertexCount_ }
{
}
@@ -53470,8 +53566,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
+ : pNext{ pNext_ }
+ , maxSampleLocationGridSize{ maxSampleLocationGridSize_ }
{
}
@@ -53555,9 +53651,9 @@ namespace VULKAN_HPP_NAMESPACE
MultisampledRenderToSingleSampledInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ = {},
VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multisampledRenderToSingleSampledEnable( multisampledRenderToSingleSampledEnable_ )
- , rasterizationSamples( rasterizationSamples_ )
+ : pNext{ pNext_ }
+ , multisampledRenderToSingleSampledEnable{ multisampledRenderToSingleSampledEnable_ }
+ , rasterizationSamples{ rasterizationSamples_ }
{
}
@@ -53667,9 +53763,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ = {},
VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , perViewAttributes( perViewAttributes_ )
- , perViewAttributesPositionXOnly( perViewAttributesPositionXOnly_ )
+ : pNext{ pNext_ }
+ , perViewAttributes{ perViewAttributes_ }
+ , perViewAttributesPositionXOnly{ perViewAttributesPositionXOnly_ }
{
}
@@ -53775,9 +53871,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( uint32_t perViewRenderAreaCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , perViewRenderAreaCount( perViewRenderAreaCount_ )
- , pPerViewRenderAreas( pPerViewRenderAreas_ )
+ : pNext{ pNext_ }
+ , perViewRenderAreaCount{ perViewRenderAreaCount_ }
+ , pPerViewRenderAreas{ pPerViewRenderAreas_ }
{
}
@@ -53900,8 +53996,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListEXT( uint32_t descriptorTypeCount_ = {},
const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ = {} ) VULKAN_HPP_NOEXCEPT
- : descriptorTypeCount( descriptorTypeCount_ )
- , pDescriptorTypes( pDescriptorTypes_ )
+ : descriptorTypeCount{ descriptorTypeCount_ }
+ , pDescriptorTypes{ pDescriptorTypes_ }
{
}
@@ -54011,9 +54107,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoEXT( uint32_t mutableDescriptorTypeListCount_ = {},
const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ )
- , pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ )
+ : pNext{ pNext_ }
+ , mutableDescriptorTypeListCount{ mutableDescriptorTypeListCount_ }
+ , pMutableDescriptorTypeLists{ pMutableDescriptorTypeLists_ }
{
}
@@ -54146,8 +54242,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR OpaqueCaptureDescriptorDataCreateInfoEXT( const void * opaqueCaptureDescriptorData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , opaqueCaptureDescriptorData( opaqueCaptureDescriptorData_ )
+ : pNext{ pNext_ }
+ , opaqueCaptureDescriptorData{ opaqueCaptureDescriptorData_ }
{
}
@@ -54246,10 +54342,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pRegions_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -54382,8 +54478,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatInfoNV( VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , usage( usage_ )
+ : pNext{ pNext_ }
+ , usage{ usage_ }
{
}
@@ -54479,8 +54575,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
{
}
@@ -54571,16 +54667,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ = VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV::eUnknown,
VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , width( width_ )
- , height( height_ )
- , imageFormat( imageFormat_ )
- , flowVectorFormat( flowVectorFormat_ )
- , costFormat( costFormat_ )
- , outputGridSize( outputGridSize_ )
- , hintGridSize( hintGridSize_ )
- , performanceLevel( performanceLevel_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , width{ width_ }
+ , height{ height_ }
+ , imageFormat{ imageFormat_ }
+ , flowVectorFormat{ flowVectorFormat_ }
+ , costFormat{ costFormat_ }
+ , outputGridSize{ outputGridSize_ }
+ , hintGridSize{ hintGridSize_ }
+ , performanceLevel{ performanceLevel_ }
+ , flags{ flags_ }
{
}
@@ -54749,10 +54845,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t size_ = {},
const void * pPrivateData_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , id( id_ )
- , size( size_ )
- , pPrivateData( pPrivateData_ )
+ : pNext{ pNext_ }
+ , id{ id_ }
+ , size{ size_ }
+ , pPrivateData{ pPrivateData_ }
{
}
@@ -54862,8 +54958,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queueType( queueType_ )
+ : pNext{ pNext_ }
+ , queueType{ queueType_ }
{
}
@@ -54959,11 +55055,11 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t actualPresentTime_ = {},
uint64_t earliestPresentTime_ = {},
uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT
- : presentID( presentID_ )
- , desiredPresentTime( desiredPresentTime_ )
- , actualPresentTime( actualPresentTime_ )
- , earliestPresentTime( earliestPresentTime_ )
- , presentMargin( presentMargin_ )
+ : presentID{ presentID_ }
+ , desiredPresentTime{ desiredPresentTime_ }
+ , actualPresentTime{ actualPresentTime_ }
+ , earliestPresentTime{ earliestPresentTime_ }
+ , presentMargin{ presentMargin_ }
{
}
@@ -55044,8 +55140,8 @@ namespace VULKAN_HPP_NAMESPACE
PerformanceConfigurationAcquireInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ =
VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
{
}
@@ -55146,11 +55242,11 @@ namespace VULKAN_HPP_NAMESPACE
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & category_ = {},
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , name( name_ )
- , category( category_ )
- , description( description_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , name{ name_ }
+ , category{ category_ }
+ , description{ description_ }
{
}
@@ -55288,11 +55384,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32,
std::array<uint8_t, VK_UUID_SIZE> const & uuid_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , unit( unit_ )
- , scope( scope_ )
- , storage( storage_ )
- , uuid( uuid_ )
+ : pNext{ pNext_ }
+ , unit{ unit_ }
+ , scope{ scope_ }
+ , storage{ storage_ }
+ , uuid{ uuid_ }
{
}
@@ -55456,8 +55552,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , marker( marker_ )
+ : pNext{ pNext_ }
+ , marker{ marker_ }
{
}
@@ -55556,10 +55652,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 enable_ = {},
uint64_t parameter_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , enable( enable_ )
- , parameter( parameter_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , enable{ enable_ }
+ , parameter{ parameter_ }
{
}
@@ -55672,8 +55768,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , counterPassIndex( counterPassIndex_ )
+ : pNext{ pNext_ }
+ , counterPassIndex{ counterPassIndex_ }
{
}
@@ -55768,8 +55864,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , marker( marker_ )
+ : pNext{ pNext_ }
+ , marker{ marker_ }
{
}
@@ -55934,8 +56030,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14
PerformanceValueINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32,
VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT
- : type( type_ )
- , data( data_ )
+ : type{ type_ }
+ , data{ data_ }
{
}
@@ -55995,11 +56091,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
- , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
- , storagePushConstant16( storagePushConstant16_ )
- , storageInputOutput16( storageInputOutput16_ )
+ : pNext{ pNext_ }
+ , storageBuffer16BitAccess{ storageBuffer16BitAccess_ }
+ , uniformAndStorageBuffer16BitAccess{ uniformAndStorageBuffer16BitAccess_ }
+ , storagePushConstant16{ storagePushConstant16_ }
+ , storageInputOutput16{ storageInputOutput16_ }
{
}
@@ -56130,9 +56226,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {},
VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , formatA4R4G4B4( formatA4R4G4B4_ )
- , formatA4B4G4R4( formatA4B4G4R4_ )
+ : pNext{ pNext_ }
+ , formatA4R4G4B4{ formatA4R4G4B4_ }
+ , formatA4B4G4R4{ formatA4B4G4R4_ }
{
}
@@ -56237,10 +56333,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
- , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
- , storagePushConstant8( storagePushConstant8_ )
+ : pNext{ pNext_ }
+ , storageBuffer8BitAccess{ storageBuffer8BitAccess_ }
+ , uniformAndStorageBuffer8BitAccess{ uniformAndStorageBuffer8BitAccess_ }
+ , storagePushConstant8{ storagePushConstant8_ }
{
}
@@ -56360,8 +56456,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , decodeModeSharedExponent( decodeModeSharedExponent_ )
+ : pNext{ pNext_ }
+ , decodeModeSharedExponent{ decodeModeSharedExponent_ }
{
}
@@ -56463,12 +56559,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {},
VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructure( accelerationStructure_ )
- , accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ )
- , accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ )
- , accelerationStructureHostCommands( accelerationStructureHostCommands_ )
- , descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ )
+ : pNext{ pNext_ }
+ , accelerationStructure{ accelerationStructure_ }
+ , accelerationStructureCaptureReplay{ accelerationStructureCaptureReplay_ }
+ , accelerationStructureIndirectBuild{ accelerationStructureIndirectBuild_ }
+ , accelerationStructureHostCommands{ accelerationStructureHostCommands_ }
+ , descriptorBindingAccelerationStructureUpdateAfterBind{ descriptorBindingAccelerationStructureUpdateAfterBind_ }
{
}
@@ -56621,15 +56717,15 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {},
uint32_t minAccelerationStructureScratchOffsetAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxGeometryCount( maxGeometryCount_ )
- , maxInstanceCount( maxInstanceCount_ )
- , maxPrimitiveCount( maxPrimitiveCount_ )
- , maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ )
- , maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ )
- , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
- , maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ )
- , minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ )
+ : pNext{ pNext_ }
+ , maxGeometryCount{ maxGeometryCount_ }
+ , maxInstanceCount{ maxInstanceCount_ }
+ , maxPrimitiveCount{ maxPrimitiveCount_ }
+ , maxPerStageDescriptorAccelerationStructures{ maxPerStageDescriptorAccelerationStructures_ }
+ , maxPerStageDescriptorUpdateAfterBindAccelerationStructures{ maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ }
+ , maxDescriptorSetAccelerationStructures{ maxDescriptorSetAccelerationStructures_ }
+ , maxDescriptorSetUpdateAfterBindAccelerationStructures{ maxDescriptorSetUpdateAfterBindAccelerationStructures_ }
+ , minAccelerationStructureScratchOffsetAlignment{ minAccelerationStructureScratchOffsetAlignment_ }
{
}
@@ -56743,8 +56839,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceAddressBindingReportFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , reportAddressBinding( reportAddressBinding_ )
+ : pNext{ pNext_ }
+ , reportAddressBinding{ reportAddressBinding_ }
{
}
@@ -56842,8 +56938,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , amigoProfiling( amigoProfiling_ )
+ : pNext{ pNext_ }
+ , amigoProfiling{ amigoProfiling_ }
{
}
@@ -56939,8 +57035,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentFeedbackLoopDynamicState( attachmentFeedbackLoopDynamicState_ )
+ : pNext{ pNext_ }
+ , attachmentFeedbackLoopDynamicState{ attachmentFeedbackLoopDynamicState_ }
{
}
@@ -57041,8 +57137,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentFeedbackLoopLayout( attachmentFeedbackLoopLayout_ )
+ : pNext{ pNext_ }
+ , attachmentFeedbackLoopLayout{ attachmentFeedbackLoopLayout_ }
{
}
@@ -57141,8 +57237,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
+ : pNext{ pNext_ }
+ , advancedBlendCoherentOperations{ advancedBlendCoherentOperations_ }
{
}
@@ -57245,13 +57341,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {},
VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ )
- , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ )
- , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ )
- , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ )
- , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ )
- , advancedBlendAllOperations( advancedBlendAllOperations_ )
+ : pNext{ pNext_ }
+ , advancedBlendMaxColorAttachments{ advancedBlendMaxColorAttachments_ }
+ , advancedBlendIndependentBlend{ advancedBlendIndependentBlend_ }
+ , advancedBlendNonPremultipliedSrcColor{ advancedBlendNonPremultipliedSrcColor_ }
+ , advancedBlendNonPremultipliedDstColor{ advancedBlendNonPremultipliedDstColor_ }
+ , advancedBlendCorrelatedOverlap{ advancedBlendCorrelatedOverlap_ }
+ , advancedBlendAllOperations{ advancedBlendAllOperations_ }
{
}
@@ -57359,9 +57455,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ = {},
VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , borderColorSwizzle( borderColorSwizzle_ )
- , borderColorSwizzleFromImage( borderColorSwizzleFromImage_ )
+ : pNext{ pNext_ }
+ , borderColorSwizzle{ borderColorSwizzle_ }
+ , borderColorSwizzleFromImage{ borderColorSwizzleFromImage_ }
{
}
@@ -57469,10 +57565,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , bufferDeviceAddress( bufferDeviceAddress_ )
- , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
- , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
+ : pNext{ pNext_ }
+ , bufferDeviceAddress{ bufferDeviceAddress_ }
+ , bufferDeviceAddressCaptureReplay{ bufferDeviceAddressCaptureReplay_ }
+ , bufferDeviceAddressMultiDevice{ bufferDeviceAddressMultiDevice_ }
{
}
@@ -57595,10 +57691,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , bufferDeviceAddress( bufferDeviceAddress_ )
- , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
- , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
+ : pNext{ pNext_ }
+ , bufferDeviceAddress{ bufferDeviceAddress_ }
+ , bufferDeviceAddressCaptureReplay{ bufferDeviceAddressCaptureReplay_ }
+ , bufferDeviceAddressMultiDevice{ bufferDeviceAddressMultiDevice_ }
{
}
@@ -57720,9 +57816,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ = {},
VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , clustercullingShader( clustercullingShader_ )
- , multiviewClusterCullingShader( multiviewClusterCullingShader_ )
+ : pNext{ pNext_ }
+ , clustercullingShader{ clustercullingShader_ }
+ , multiviewClusterCullingShader{ multiviewClusterCullingShader_ }
{
}
@@ -57832,11 +57928,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxOutputClusterCount_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxWorkGroupCount( maxWorkGroupCount_ )
- , maxWorkGroupSize( maxWorkGroupSize_ )
- , maxOutputClusterCount( maxOutputClusterCount_ )
- , indirectBufferOffsetAlignment( indirectBufferOffsetAlignment_ )
+ : pNext{ pNext_ }
+ , maxWorkGroupCount{ maxWorkGroupCount_ }
+ , maxWorkGroupSize{ maxWorkGroupSize_ }
+ , maxOutputClusterCount{ maxOutputClusterCount_ }
+ , indirectBufferOffsetAlignment{ indirectBufferOffsetAlignment_ }
{
}
@@ -57930,8 +58026,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 clusterShadingRate_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , clusterShadingRate( clusterShadingRate_ )
+ : pNext{ pNext_ }
+ , clusterShadingRate{ clusterShadingRate_ }
{
}
@@ -58030,8 +58126,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceCoherentMemory( deviceCoherentMemory_ )
+ : pNext{ pNext_ }
+ , deviceCoherentMemory{ deviceCoherentMemory_ }
{
}
@@ -58128,8 +58224,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorWriteEnable( colorWriteEnable_ )
+ : pNext{ pNext_ }
+ , colorWriteEnable{ colorWriteEnable_ }
{
}
@@ -58227,9 +58323,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {},
VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
- , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
+ : pNext{ pNext_ }
+ , computeDerivativeGroupQuads{ computeDerivativeGroupQuads_ }
+ , computeDerivativeGroupLinear{ computeDerivativeGroupLinear_ }
{
}
@@ -58337,9 +58433,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {},
VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , conditionalRendering( conditionalRendering_ )
- , inheritedConditionalRendering( inheritedConditionalRendering_ )
+ : pNext{ pNext_ }
+ , conditionalRendering{ conditionalRendering_ }
+ , inheritedConditionalRendering{ inheritedConditionalRendering_ }
{
}
@@ -58454,16 +58550,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {},
VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , primitiveOverestimationSize( primitiveOverestimationSize_ )
- , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ )
- , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ )
- , primitiveUnderestimation( primitiveUnderestimation_ )
- , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ )
- , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ )
- , degenerateLinesRasterized( degenerateLinesRasterized_ )
- , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ )
- , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
+ : pNext{ pNext_ }
+ , primitiveOverestimationSize{ primitiveOverestimationSize_ }
+ , maxExtraPrimitiveOverestimationSize{ maxExtraPrimitiveOverestimationSize_ }
+ , extraPrimitiveOverestimationSizeGranularity{ extraPrimitiveOverestimationSizeGranularity_ }
+ , primitiveUnderestimation{ primitiveUnderestimation_ }
+ , conservativePointAndLineRasterization{ conservativePointAndLineRasterization_ }
+ , degenerateTrianglesRasterized{ degenerateTrianglesRasterized_ }
+ , degenerateLinesRasterized{ degenerateLinesRasterized_ }
+ , fullyCoveredFragmentShaderInputVariable{ fullyCoveredFragmentShaderInputVariable_ }
+ , conservativeRasterizationPostDepthCoverage{ conservativeRasterizationPostDepthCoverage_ }
{
}
@@ -58583,9 +58679,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cooperativeMatrix( cooperativeMatrix_ )
- , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
+ : pNext{ pNext_ }
+ , cooperativeMatrix{ cooperativeMatrix_ }
+ , cooperativeMatrixRobustBufferAccess{ cooperativeMatrixRobustBufferAccess_ }
{
}
@@ -58692,9 +58788,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cooperativeMatrix( cooperativeMatrix_ )
- , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
+ : pNext{ pNext_ }
+ , cooperativeMatrix{ cooperativeMatrix_ }
+ , cooperativeMatrixRobustBufferAccess{ cooperativeMatrixRobustBufferAccess_ }
{
}
@@ -58800,8 +58896,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
+ : pNext{ pNext_ }
+ , cooperativeMatrixSupportedStages{ cooperativeMatrixSupportedStages_ }
{
}
@@ -58883,8 +58979,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
+ : pNext{ pNext_ }
+ , cooperativeMatrixSupportedStages{ cooperativeMatrixSupportedStages_ }
{
}
@@ -58966,8 +59062,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 indirectCopy_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , indirectCopy( indirectCopy_ )
+ : pNext{ pNext_ }
+ , indirectCopy{ indirectCopy_ }
{
}
@@ -59063,8 +59159,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( VULKAN_HPP_NAMESPACE::QueueFlags supportedQueues_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportedQueues( supportedQueues_ )
+ : pNext{ pNext_ }
+ , supportedQueues{ supportedQueues_ }
{
}
@@ -59146,8 +59242,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cornerSampledImage( cornerSampledImage_ )
+ : pNext{ pNext_ }
+ , cornerSampledImage{ cornerSampledImage_ }
{
}
@@ -59244,8 +59340,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , coverageReductionMode( coverageReductionMode_ )
+ : pNext{ pNext_ }
+ , coverageReductionMode{ coverageReductionMode_ }
{
}
@@ -59342,8 +59438,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cubicRangeClamp( cubicRangeClamp_ )
+ : pNext{ pNext_ }
+ , cubicRangeClamp{ cubicRangeClamp_ }
{
}
@@ -59439,8 +59535,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , selectableCubicWeights( selectableCubicWeights_ )
+ : pNext{ pNext_ }
+ , selectableCubicWeights{ selectableCubicWeights_ }
{
}
@@ -59538,8 +59634,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cudaKernelLaunchFeatures_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cudaKernelLaunchFeatures( cudaKernelLaunchFeatures_ )
+ : pNext{ pNext_ }
+ , cudaKernelLaunchFeatures{ cudaKernelLaunchFeatures_ }
{
}
@@ -59639,9 +59735,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceCudaKernelLaunchPropertiesNV( uint32_t computeCapabilityMinor_ = {},
uint32_t computeCapabilityMajor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , computeCapabilityMinor( computeCapabilityMinor_ )
- , computeCapabilityMajor( computeCapabilityMajor_ )
+ : pNext{ pNext_ }
+ , computeCapabilityMinor{ computeCapabilityMinor_ }
+ , computeCapabilityMajor{ computeCapabilityMajor_ }
{
}
@@ -59727,9 +59823,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {},
VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , customBorderColors( customBorderColors_ )
- , customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
+ : pNext{ pNext_ }
+ , customBorderColors{ customBorderColors_ }
+ , customBorderColorWithoutFormat{ customBorderColorWithoutFormat_ }
{
}
@@ -59835,8 +59931,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( uint32_t maxCustomBorderColorSamplers_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
+ : pNext{ pNext_ }
+ , maxCustomBorderColorSamplers{ maxCustomBorderColorSamplers_ }
{
}
@@ -59918,8 +60014,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
+ : pNext{ pNext_ }
+ , dedicatedAllocationImageAliasing{ dedicatedAllocationImageAliasing_ }
{
}
@@ -60022,11 +60118,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ = {},
VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthBiasControl( depthBiasControl_ )
- , leastRepresentableValueForceUnormRepresentation( leastRepresentableValueForceUnormRepresentation_ )
- , floatRepresentation( floatRepresentation_ )
- , depthBiasExact( depthBiasExact_ )
+ : pNext{ pNext_ }
+ , depthBiasControl{ depthBiasControl_ }
+ , leastRepresentableValueForceUnormRepresentation{ leastRepresentableValueForceUnormRepresentation_ }
+ , floatRepresentation{ floatRepresentation_ }
+ , depthBiasExact{ depthBiasExact_ }
{
}
@@ -60153,8 +60249,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthClampZeroOne( depthClampZeroOne_ )
+ : pNext{ pNext_ }
+ , depthClampZeroOne{ depthClampZeroOne_ }
{
}
@@ -60251,8 +60347,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthClipControl( depthClipControl_ )
+ : pNext{ pNext_ }
+ , depthClipControl{ depthClipControl_ }
{
}
@@ -60349,8 +60445,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthClipEnable( depthClipEnable_ )
+ : pNext{ pNext_ }
+ , depthClipEnable{ depthClipEnable_ }
{
}
@@ -60449,11 +60545,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportedDepthResolveModes( supportedDepthResolveModes_ )
- , supportedStencilResolveModes( supportedStencilResolveModes_ )
- , independentResolveNone( independentResolveNone_ )
- , independentResolve( independentResolve_ )
+ : pNext{ pNext_ }
+ , supportedDepthResolveModes{ supportedDepthResolveModes_ }
+ , supportedStencilResolveModes{ supportedStencilResolveModes_ }
+ , independentResolveNone{ independentResolveNone_ }
+ , independentResolve{ independentResolve_ }
{
}
@@ -60547,8 +60643,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( size_t combinedImageSamplerDensityMapDescriptorSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , combinedImageSamplerDensityMapDescriptorSize( combinedImageSamplerDensityMapDescriptorSize_ )
+ : pNext{ pNext_ }
+ , combinedImageSamplerDensityMapDescriptorSize{ combinedImageSamplerDensityMapDescriptorSize_ }
{
}
@@ -60636,11 +60732,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ = {},
VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorBuffer( descriptorBuffer_ )
- , descriptorBufferCaptureReplay( descriptorBufferCaptureReplay_ )
- , descriptorBufferImageLayoutIgnored( descriptorBufferImageLayoutIgnored_ )
- , descriptorBufferPushDescriptors( descriptorBufferPushDescriptors_ )
+ : pNext{ pNext_ }
+ , descriptorBuffer{ descriptorBuffer_ }
+ , descriptorBufferCaptureReplay{ descriptorBufferCaptureReplay_ }
+ , descriptorBufferImageLayoutIgnored{ descriptorBufferImageLayoutIgnored_ }
+ , descriptorBufferPushDescriptors{ descriptorBufferPushDescriptors_ }
{
}
@@ -60801,40 +60897,40 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize resourceDescriptorBufferAddressSpaceSize_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferAddressSpaceSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , combinedImageSamplerDescriptorSingleArray( combinedImageSamplerDescriptorSingleArray_ )
- , bufferlessPushDescriptors( bufferlessPushDescriptors_ )
- , allowSamplerImageViewPostSubmitCreation( allowSamplerImageViewPostSubmitCreation_ )
- , descriptorBufferOffsetAlignment( descriptorBufferOffsetAlignment_ )
- , maxDescriptorBufferBindings( maxDescriptorBufferBindings_ )
- , maxResourceDescriptorBufferBindings( maxResourceDescriptorBufferBindings_ )
- , maxSamplerDescriptorBufferBindings( maxSamplerDescriptorBufferBindings_ )
- , maxEmbeddedImmutableSamplerBindings( maxEmbeddedImmutableSamplerBindings_ )
- , maxEmbeddedImmutableSamplers( maxEmbeddedImmutableSamplers_ )
- , bufferCaptureReplayDescriptorDataSize( bufferCaptureReplayDescriptorDataSize_ )
- , imageCaptureReplayDescriptorDataSize( imageCaptureReplayDescriptorDataSize_ )
- , imageViewCaptureReplayDescriptorDataSize( imageViewCaptureReplayDescriptorDataSize_ )
- , samplerCaptureReplayDescriptorDataSize( samplerCaptureReplayDescriptorDataSize_ )
- , accelerationStructureCaptureReplayDescriptorDataSize( accelerationStructureCaptureReplayDescriptorDataSize_ )
- , samplerDescriptorSize( samplerDescriptorSize_ )
- , combinedImageSamplerDescriptorSize( combinedImageSamplerDescriptorSize_ )
- , sampledImageDescriptorSize( sampledImageDescriptorSize_ )
- , storageImageDescriptorSize( storageImageDescriptorSize_ )
- , uniformTexelBufferDescriptorSize( uniformTexelBufferDescriptorSize_ )
- , robustUniformTexelBufferDescriptorSize( robustUniformTexelBufferDescriptorSize_ )
- , storageTexelBufferDescriptorSize( storageTexelBufferDescriptorSize_ )
- , robustStorageTexelBufferDescriptorSize( robustStorageTexelBufferDescriptorSize_ )
- , uniformBufferDescriptorSize( uniformBufferDescriptorSize_ )
- , robustUniformBufferDescriptorSize( robustUniformBufferDescriptorSize_ )
- , storageBufferDescriptorSize( storageBufferDescriptorSize_ )
- , robustStorageBufferDescriptorSize( robustStorageBufferDescriptorSize_ )
- , inputAttachmentDescriptorSize( inputAttachmentDescriptorSize_ )
- , accelerationStructureDescriptorSize( accelerationStructureDescriptorSize_ )
- , maxSamplerDescriptorBufferRange( maxSamplerDescriptorBufferRange_ )
- , maxResourceDescriptorBufferRange( maxResourceDescriptorBufferRange_ )
- , samplerDescriptorBufferAddressSpaceSize( samplerDescriptorBufferAddressSpaceSize_ )
- , resourceDescriptorBufferAddressSpaceSize( resourceDescriptorBufferAddressSpaceSize_ )
- , descriptorBufferAddressSpaceSize( descriptorBufferAddressSpaceSize_ )
+ : pNext{ pNext_ }
+ , combinedImageSamplerDescriptorSingleArray{ combinedImageSamplerDescriptorSingleArray_ }
+ , bufferlessPushDescriptors{ bufferlessPushDescriptors_ }
+ , allowSamplerImageViewPostSubmitCreation{ allowSamplerImageViewPostSubmitCreation_ }
+ , descriptorBufferOffsetAlignment{ descriptorBufferOffsetAlignment_ }
+ , maxDescriptorBufferBindings{ maxDescriptorBufferBindings_ }
+ , maxResourceDescriptorBufferBindings{ maxResourceDescriptorBufferBindings_ }
+ , maxSamplerDescriptorBufferBindings{ maxSamplerDescriptorBufferBindings_ }
+ , maxEmbeddedImmutableSamplerBindings{ maxEmbeddedImmutableSamplerBindings_ }
+ , maxEmbeddedImmutableSamplers{ maxEmbeddedImmutableSamplers_ }
+ , bufferCaptureReplayDescriptorDataSize{ bufferCaptureReplayDescriptorDataSize_ }
+ , imageCaptureReplayDescriptorDataSize{ imageCaptureReplayDescriptorDataSize_ }
+ , imageViewCaptureReplayDescriptorDataSize{ imageViewCaptureReplayDescriptorDataSize_ }
+ , samplerCaptureReplayDescriptorDataSize{ samplerCaptureReplayDescriptorDataSize_ }
+ , accelerationStructureCaptureReplayDescriptorDataSize{ accelerationStructureCaptureReplayDescriptorDataSize_ }
+ , samplerDescriptorSize{ samplerDescriptorSize_ }
+ , combinedImageSamplerDescriptorSize{ combinedImageSamplerDescriptorSize_ }
+ , sampledImageDescriptorSize{ sampledImageDescriptorSize_ }
+ , storageImageDescriptorSize{ storageImageDescriptorSize_ }
+ , uniformTexelBufferDescriptorSize{ uniformTexelBufferDescriptorSize_ }
+ , robustUniformTexelBufferDescriptorSize{ robustUniformTexelBufferDescriptorSize_ }
+ , storageTexelBufferDescriptorSize{ storageTexelBufferDescriptorSize_ }
+ , robustStorageTexelBufferDescriptorSize{ robustStorageTexelBufferDescriptorSize_ }
+ , uniformBufferDescriptorSize{ uniformBufferDescriptorSize_ }
+ , robustUniformBufferDescriptorSize{ robustUniformBufferDescriptorSize_ }
+ , storageBufferDescriptorSize{ storageBufferDescriptorSize_ }
+ , robustStorageBufferDescriptorSize{ robustStorageBufferDescriptorSize_ }
+ , inputAttachmentDescriptorSize{ inputAttachmentDescriptorSize_ }
+ , accelerationStructureDescriptorSize{ accelerationStructureDescriptorSize_ }
+ , maxSamplerDescriptorBufferRange{ maxSamplerDescriptorBufferRange_ }
+ , maxResourceDescriptorBufferRange{ maxResourceDescriptorBufferRange_ }
+ , samplerDescriptorBufferAddressSpaceSize{ samplerDescriptorBufferAddressSpaceSize_ }
+ , resourceDescriptorBufferAddressSpaceSize{ resourceDescriptorBufferAddressSpaceSize_ }
+ , descriptorBufferAddressSpaceSize{ descriptorBufferAddressSpaceSize_ }
{
}
@@ -61065,27 +61161,27 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
- , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
- , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
- , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
- , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
- , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
- , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
- , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
- , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
- , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
- , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
- , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
- , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
- , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
- , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
- , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
- , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
- , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
- , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
- , runtimeDescriptorArray( runtimeDescriptorArray_ )
+ : pNext{ pNext_ }
+ , shaderInputAttachmentArrayDynamicIndexing{ shaderInputAttachmentArrayDynamicIndexing_ }
+ , shaderUniformTexelBufferArrayDynamicIndexing{ shaderUniformTexelBufferArrayDynamicIndexing_ }
+ , shaderStorageTexelBufferArrayDynamicIndexing{ shaderStorageTexelBufferArrayDynamicIndexing_ }
+ , shaderUniformBufferArrayNonUniformIndexing{ shaderUniformBufferArrayNonUniformIndexing_ }
+ , shaderSampledImageArrayNonUniformIndexing{ shaderSampledImageArrayNonUniformIndexing_ }
+ , shaderStorageBufferArrayNonUniformIndexing{ shaderStorageBufferArrayNonUniformIndexing_ }
+ , shaderStorageImageArrayNonUniformIndexing{ shaderStorageImageArrayNonUniformIndexing_ }
+ , shaderInputAttachmentArrayNonUniformIndexing{ shaderInputAttachmentArrayNonUniformIndexing_ }
+ , shaderUniformTexelBufferArrayNonUniformIndexing{ shaderUniformTexelBufferArrayNonUniformIndexing_ }
+ , shaderStorageTexelBufferArrayNonUniformIndexing{ shaderStorageTexelBufferArrayNonUniformIndexing_ }
+ , descriptorBindingUniformBufferUpdateAfterBind{ descriptorBindingUniformBufferUpdateAfterBind_ }
+ , descriptorBindingSampledImageUpdateAfterBind{ descriptorBindingSampledImageUpdateAfterBind_ }
+ , descriptorBindingStorageImageUpdateAfterBind{ descriptorBindingStorageImageUpdateAfterBind_ }
+ , descriptorBindingStorageBufferUpdateAfterBind{ descriptorBindingStorageBufferUpdateAfterBind_ }
+ , descriptorBindingUniformTexelBufferUpdateAfterBind{ descriptorBindingUniformTexelBufferUpdateAfterBind_ }
+ , descriptorBindingStorageTexelBufferUpdateAfterBind{ descriptorBindingStorageTexelBufferUpdateAfterBind_ }
+ , descriptorBindingUpdateUnusedWhilePending{ descriptorBindingUpdateUnusedWhilePending_ }
+ , descriptorBindingPartiallyBound{ descriptorBindingPartiallyBound_ }
+ , descriptorBindingVariableDescriptorCount{ descriptorBindingVariableDescriptorCount_ }
+ , runtimeDescriptorArray{ runtimeDescriptorArray_ }
{
}
@@ -61420,30 +61516,30 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
- , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
- , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
- , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
- , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
- , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
- , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
- , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
- , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
- , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
- , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
- , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
- , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
- , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
- , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
- , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
- , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
- , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
- , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
- , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
- , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
- , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
- , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
+ : pNext{ pNext_ }
+ , maxUpdateAfterBindDescriptorsInAllPools{ maxUpdateAfterBindDescriptorsInAllPools_ }
+ , shaderUniformBufferArrayNonUniformIndexingNative{ shaderUniformBufferArrayNonUniformIndexingNative_ }
+ , shaderSampledImageArrayNonUniformIndexingNative{ shaderSampledImageArrayNonUniformIndexingNative_ }
+ , shaderStorageBufferArrayNonUniformIndexingNative{ shaderStorageBufferArrayNonUniformIndexingNative_ }
+ , shaderStorageImageArrayNonUniformIndexingNative{ shaderStorageImageArrayNonUniformIndexingNative_ }
+ , shaderInputAttachmentArrayNonUniformIndexingNative{ shaderInputAttachmentArrayNonUniformIndexingNative_ }
+ , robustBufferAccessUpdateAfterBind{ robustBufferAccessUpdateAfterBind_ }
+ , quadDivergentImplicitLod{ quadDivergentImplicitLod_ }
+ , maxPerStageDescriptorUpdateAfterBindSamplers{ maxPerStageDescriptorUpdateAfterBindSamplers_ }
+ , maxPerStageDescriptorUpdateAfterBindUniformBuffers{ maxPerStageDescriptorUpdateAfterBindUniformBuffers_ }
+ , maxPerStageDescriptorUpdateAfterBindStorageBuffers{ maxPerStageDescriptorUpdateAfterBindStorageBuffers_ }
+ , maxPerStageDescriptorUpdateAfterBindSampledImages{ maxPerStageDescriptorUpdateAfterBindSampledImages_ }
+ , maxPerStageDescriptorUpdateAfterBindStorageImages{ maxPerStageDescriptorUpdateAfterBindStorageImages_ }
+ , maxPerStageDescriptorUpdateAfterBindInputAttachments{ maxPerStageDescriptorUpdateAfterBindInputAttachments_ }
+ , maxPerStageUpdateAfterBindResources{ maxPerStageUpdateAfterBindResources_ }
+ , maxDescriptorSetUpdateAfterBindSamplers{ maxDescriptorSetUpdateAfterBindSamplers_ }
+ , maxDescriptorSetUpdateAfterBindUniformBuffers{ maxDescriptorSetUpdateAfterBindUniformBuffers_ }
+ , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic{ maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ }
+ , maxDescriptorSetUpdateAfterBindStorageBuffers{ maxDescriptorSetUpdateAfterBindStorageBuffers_ }
+ , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic{ maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ }
+ , maxDescriptorSetUpdateAfterBindSampledImages{ maxDescriptorSetUpdateAfterBindSampledImages_ }
+ , maxDescriptorSetUpdateAfterBindStorageImages{ maxDescriptorSetUpdateAfterBindStorageImages_ }
+ , maxDescriptorSetUpdateAfterBindInputAttachments{ maxDescriptorSetUpdateAfterBindInputAttachments_ }
{
}
@@ -61618,8 +61714,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorPoolOverallocation( descriptorPoolOverallocation_ )
+ : pNext{ pNext_ }
+ , descriptorPoolOverallocation{ descriptorPoolOverallocation_ }
{
}
@@ -61718,8 +61814,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorSetHostMapping( descriptorSetHostMapping_ )
+ : pNext{ pNext_ }
+ , descriptorSetHostMapping{ descriptorSetHostMapping_ }
{
}
@@ -61820,10 +61916,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ = {},
VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceGeneratedCompute( deviceGeneratedCompute_ )
- , deviceGeneratedComputePipelines( deviceGeneratedComputePipelines_ )
- , deviceGeneratedComputeCaptureReplay( deviceGeneratedComputeCaptureReplay_ )
+ : pNext{ pNext_ }
+ , deviceGeneratedCompute{ deviceGeneratedCompute_ }
+ , deviceGeneratedComputePipelines{ deviceGeneratedComputePipelines_ }
+ , deviceGeneratedComputeCaptureReplay{ deviceGeneratedComputeCaptureReplay_ }
{
}
@@ -61945,8 +62041,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceGeneratedCommands( deviceGeneratedCommands_ )
+ : pNext{ pNext_ }
+ , deviceGeneratedCommands{ deviceGeneratedCommands_ }
{
}
@@ -62052,16 +62148,16 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t minSequencesIndexBufferOffsetAlignment_ = {},
uint32_t minIndirectCommandsBufferOffsetAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ )
- , maxIndirectSequenceCount( maxIndirectSequenceCount_ )
- , maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ )
- , maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ )
- , maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ )
- , maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ )
- , minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ )
- , minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ )
- , minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
+ : pNext{ pNext_ }
+ , maxGraphicsShaderGroupCount{ maxGraphicsShaderGroupCount_ }
+ , maxIndirectSequenceCount{ maxIndirectSequenceCount_ }
+ , maxIndirectCommandsTokenCount{ maxIndirectCommandsTokenCount_ }
+ , maxIndirectCommandsStreamCount{ maxIndirectCommandsStreamCount_ }
+ , maxIndirectCommandsTokenOffset{ maxIndirectCommandsTokenOffset_ }
+ , maxIndirectCommandsStreamStride{ maxIndirectCommandsStreamStride_ }
+ , minSequencesCountBufferOffsetAlignment{ minSequencesCountBufferOffsetAlignment_ }
+ , minSequencesIndexBufferOffsetAlignment{ minSequencesIndexBufferOffsetAlignment_ }
+ , minIndirectCommandsBufferOffsetAlignment{ minIndirectCommandsBufferOffsetAlignment_ }
{
}
@@ -62180,8 +62276,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceMemoryReport( deviceMemoryReport_ )
+ : pNext{ pNext_ }
+ , deviceMemoryReport{ deviceMemoryReport_ }
{
}
@@ -62278,8 +62374,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , diagnosticsConfig( diagnosticsConfig_ )
+ : pNext{ pNext_ }
+ , diagnosticsConfig{ diagnosticsConfig_ }
{
}
@@ -62375,8 +62471,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxDiscardRectangles( maxDiscardRectangles_ )
+ : pNext{ pNext_ }
+ , maxDiscardRectangles{ maxDiscardRectangles_ }
{
}
@@ -62459,8 +62555,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , displacementMicromap( displacementMicromap_ )
+ : pNext{ pNext_ }
+ , displacementMicromap{ displacementMicromap_ }
{
}
@@ -62559,8 +62655,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapPropertiesNV( uint32_t maxDisplacementMicromapSubdivisionLevel_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxDisplacementMicromapSubdivisionLevel( maxDisplacementMicromapSubdivisionLevel_ )
+ : pNext{ pNext_ }
+ , maxDisplacementMicromapSubdivisionLevel{ maxDisplacementMicromapSubdivisionLevel_ }
{
}
@@ -62647,11 +62743,11 @@ namespace VULKAN_HPP_NAMESPACE
std::array<char, VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {},
VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , driverID( driverID_ )
- , driverName( driverName_ )
- , driverInfo( driverInfo_ )
- , conformanceVersion( conformanceVersion_ )
+ : pNext{ pNext_ }
+ , driverID{ driverID_ }
+ , driverName{ driverName_ }
+ , driverInfo{ driverInfo_ }
+ , conformanceVersion{ conformanceVersion_ }
{
}
@@ -62785,13 +62881,13 @@ namespace VULKAN_HPP_NAMESPACE
int64_t renderMajor_ = {},
int64_t renderMinor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hasPrimary( hasPrimary_ )
- , hasRender( hasRender_ )
- , primaryMajor( primaryMajor_ )
- , primaryMinor( primaryMinor_ )
- , renderMajor( renderMajor_ )
- , renderMinor( renderMinor_ )
+ : pNext{ pNext_ }
+ , hasPrimary{ hasPrimary_ }
+ , hasRender{ hasRender_ }
+ , primaryMajor{ primaryMajor_ }
+ , primaryMinor{ primaryMinor_ }
+ , renderMajor{ renderMajor_ }
+ , renderMinor{ renderMinor_ }
{
}
@@ -62887,8 +62983,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dynamicRendering( dynamicRendering_ )
+ : pNext{ pNext_ }
+ , dynamicRendering{ dynamicRendering_ }
{
}
@@ -62986,8 +63082,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingLocalRead_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dynamicRenderingLocalRead( dynamicRenderingLocalRead_ )
+ : pNext{ pNext_ }
+ , dynamicRenderingLocalRead{ dynamicRenderingLocalRead_ }
{
}
@@ -63086,8 +63182,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dynamicRenderingUnusedAttachments( dynamicRenderingUnusedAttachments_ )
+ : pNext{ pNext_ }
+ , dynamicRenderingUnusedAttachments{ dynamicRenderingUnusedAttachments_ }
{
}
@@ -63188,8 +63284,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , exclusiveScissor( exclusiveScissor_ )
+ : pNext{ pNext_ }
+ , exclusiveScissor{ exclusiveScissor_ }
{
}
@@ -63287,10 +63383,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ = {},
VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , extendedDynamicState2( extendedDynamicState2_ )
- , extendedDynamicState2LogicOp( extendedDynamicState2LogicOp_ )
- , extendedDynamicState2PatchControlPoints( extendedDynamicState2PatchControlPoints_ )
+ : pNext{ pNext_ }
+ , extendedDynamicState2{ extendedDynamicState2_ }
+ , extendedDynamicState2LogicOp{ extendedDynamicState2LogicOp_ }
+ , extendedDynamicState2PatchControlPoints{ extendedDynamicState2PatchControlPoints_ }
{
}
@@ -63441,38 +63537,38 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable_ = {},
VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , extendedDynamicState3TessellationDomainOrigin( extendedDynamicState3TessellationDomainOrigin_ )
- , extendedDynamicState3DepthClampEnable( extendedDynamicState3DepthClampEnable_ )
- , extendedDynamicState3PolygonMode( extendedDynamicState3PolygonMode_ )
- , extendedDynamicState3RasterizationSamples( extendedDynamicState3RasterizationSamples_ )
- , extendedDynamicState3SampleMask( extendedDynamicState3SampleMask_ )
- , extendedDynamicState3AlphaToCoverageEnable( extendedDynamicState3AlphaToCoverageEnable_ )
- , extendedDynamicState3AlphaToOneEnable( extendedDynamicState3AlphaToOneEnable_ )
- , extendedDynamicState3LogicOpEnable( extendedDynamicState3LogicOpEnable_ )
- , extendedDynamicState3ColorBlendEnable( extendedDynamicState3ColorBlendEnable_ )
- , extendedDynamicState3ColorBlendEquation( extendedDynamicState3ColorBlendEquation_ )
- , extendedDynamicState3ColorWriteMask( extendedDynamicState3ColorWriteMask_ )
- , extendedDynamicState3RasterizationStream( extendedDynamicState3RasterizationStream_ )
- , extendedDynamicState3ConservativeRasterizationMode( extendedDynamicState3ConservativeRasterizationMode_ )
- , extendedDynamicState3ExtraPrimitiveOverestimationSize( extendedDynamicState3ExtraPrimitiveOverestimationSize_ )
- , extendedDynamicState3DepthClipEnable( extendedDynamicState3DepthClipEnable_ )
- , extendedDynamicState3SampleLocationsEnable( extendedDynamicState3SampleLocationsEnable_ )
- , extendedDynamicState3ColorBlendAdvanced( extendedDynamicState3ColorBlendAdvanced_ )
- , extendedDynamicState3ProvokingVertexMode( extendedDynamicState3ProvokingVertexMode_ )
- , extendedDynamicState3LineRasterizationMode( extendedDynamicState3LineRasterizationMode_ )
- , extendedDynamicState3LineStippleEnable( extendedDynamicState3LineStippleEnable_ )
- , extendedDynamicState3DepthClipNegativeOneToOne( extendedDynamicState3DepthClipNegativeOneToOne_ )
- , extendedDynamicState3ViewportWScalingEnable( extendedDynamicState3ViewportWScalingEnable_ )
- , extendedDynamicState3ViewportSwizzle( extendedDynamicState3ViewportSwizzle_ )
- , extendedDynamicState3CoverageToColorEnable( extendedDynamicState3CoverageToColorEnable_ )
- , extendedDynamicState3CoverageToColorLocation( extendedDynamicState3CoverageToColorLocation_ )
- , extendedDynamicState3CoverageModulationMode( extendedDynamicState3CoverageModulationMode_ )
- , extendedDynamicState3CoverageModulationTableEnable( extendedDynamicState3CoverageModulationTableEnable_ )
- , extendedDynamicState3CoverageModulationTable( extendedDynamicState3CoverageModulationTable_ )
- , extendedDynamicState3CoverageReductionMode( extendedDynamicState3CoverageReductionMode_ )
- , extendedDynamicState3RepresentativeFragmentTestEnable( extendedDynamicState3RepresentativeFragmentTestEnable_ )
- , extendedDynamicState3ShadingRateImageEnable( extendedDynamicState3ShadingRateImageEnable_ )
+ : pNext{ pNext_ }
+ , extendedDynamicState3TessellationDomainOrigin{ extendedDynamicState3TessellationDomainOrigin_ }
+ , extendedDynamicState3DepthClampEnable{ extendedDynamicState3DepthClampEnable_ }
+ , extendedDynamicState3PolygonMode{ extendedDynamicState3PolygonMode_ }
+ , extendedDynamicState3RasterizationSamples{ extendedDynamicState3RasterizationSamples_ }
+ , extendedDynamicState3SampleMask{ extendedDynamicState3SampleMask_ }
+ , extendedDynamicState3AlphaToCoverageEnable{ extendedDynamicState3AlphaToCoverageEnable_ }
+ , extendedDynamicState3AlphaToOneEnable{ extendedDynamicState3AlphaToOneEnable_ }
+ , extendedDynamicState3LogicOpEnable{ extendedDynamicState3LogicOpEnable_ }
+ , extendedDynamicState3ColorBlendEnable{ extendedDynamicState3ColorBlendEnable_ }
+ , extendedDynamicState3ColorBlendEquation{ extendedDynamicState3ColorBlendEquation_ }
+ , extendedDynamicState3ColorWriteMask{ extendedDynamicState3ColorWriteMask_ }
+ , extendedDynamicState3RasterizationStream{ extendedDynamicState3RasterizationStream_ }
+ , extendedDynamicState3ConservativeRasterizationMode{ extendedDynamicState3ConservativeRasterizationMode_ }
+ , extendedDynamicState3ExtraPrimitiveOverestimationSize{ extendedDynamicState3ExtraPrimitiveOverestimationSize_ }
+ , extendedDynamicState3DepthClipEnable{ extendedDynamicState3DepthClipEnable_ }
+ , extendedDynamicState3SampleLocationsEnable{ extendedDynamicState3SampleLocationsEnable_ }
+ , extendedDynamicState3ColorBlendAdvanced{ extendedDynamicState3ColorBlendAdvanced_ }
+ , extendedDynamicState3ProvokingVertexMode{ extendedDynamicState3ProvokingVertexMode_ }
+ , extendedDynamicState3LineRasterizationMode{ extendedDynamicState3LineRasterizationMode_ }
+ , extendedDynamicState3LineStippleEnable{ extendedDynamicState3LineStippleEnable_ }
+ , extendedDynamicState3DepthClipNegativeOneToOne{ extendedDynamicState3DepthClipNegativeOneToOne_ }
+ , extendedDynamicState3ViewportWScalingEnable{ extendedDynamicState3ViewportWScalingEnable_ }
+ , extendedDynamicState3ViewportSwizzle{ extendedDynamicState3ViewportSwizzle_ }
+ , extendedDynamicState3CoverageToColorEnable{ extendedDynamicState3CoverageToColorEnable_ }
+ , extendedDynamicState3CoverageToColorLocation{ extendedDynamicState3CoverageToColorLocation_ }
+ , extendedDynamicState3CoverageModulationMode{ extendedDynamicState3CoverageModulationMode_ }
+ , extendedDynamicState3CoverageModulationTableEnable{ extendedDynamicState3CoverageModulationTableEnable_ }
+ , extendedDynamicState3CoverageModulationTable{ extendedDynamicState3CoverageModulationTable_ }
+ , extendedDynamicState3CoverageReductionMode{ extendedDynamicState3CoverageReductionMode_ }
+ , extendedDynamicState3RepresentativeFragmentTestEnable{ extendedDynamicState3RepresentativeFragmentTestEnable_ }
+ , extendedDynamicState3ShadingRateImageEnable{ extendedDynamicState3ShadingRateImageEnable_ }
{
}
@@ -63905,8 +64001,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3PropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dynamicPrimitiveTopologyUnrestricted( dynamicPrimitiveTopologyUnrestricted_ )
+ : pNext{ pNext_ }
+ , dynamicPrimitiveTopologyUnrestricted{ dynamicPrimitiveTopologyUnrestricted_ }
{
}
@@ -64004,8 +64100,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , extendedDynamicState( extendedDynamicState_ )
+ : pNext{ pNext_ }
+ , extendedDynamicState{ extendedDynamicState_ }
{
}
@@ -64103,8 +64199,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , extendedSparseAddressSpace( extendedSparseAddressSpace_ )
+ : pNext{ pNext_ }
+ , extendedSparseAddressSpace{ extendedSparseAddressSpace_ }
{
}
@@ -64205,10 +64301,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags_ = {},
VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , extendedSparseAddressSpaceSize( extendedSparseAddressSpaceSize_ )
- , extendedSparseImageUsageFlags( extendedSparseImageUsageFlags_ )
- , extendedSparseBufferUsageFlags( extendedSparseBufferUsageFlags_ )
+ : pNext{ pNext_ }
+ , extendedSparseAddressSpaceSize{ extendedSparseAddressSpaceSize_ }
+ , extendedSparseImageUsageFlags{ extendedSparseImageUsageFlags_ }
+ , extendedSparseBufferUsageFlags{ extendedSparseBufferUsageFlags_ }
{
}
@@ -64302,10 +64398,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , usage( usage_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , usage{ usage_ }
+ , handleType{ handleType_ }
{
}
@@ -64423,8 +64519,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(
VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
{
}
@@ -64524,8 +64620,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalFormatResolve( externalFormatResolve_ )
+ : pNext{ pNext_ }
+ , externalFormatResolve{ externalFormatResolve_ }
{
}
@@ -64629,10 +64725,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ )
- , externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ )
- , externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ )
+ : pNext{ pNext_ }
+ , nullColorAttachmentWithExternalFormatResolve{ nullColorAttachmentWithExternalFormatResolve_ }
+ , externalFormatResolveChromaOffsetX{ externalFormatResolveChromaOffsetX_ }
+ , externalFormatResolveChromaOffsetY{ externalFormatResolveChromaOffsetY_ }
{
}
@@ -64727,8 +64823,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
{
}
@@ -64827,8 +64923,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
+ : pNext{ pNext_ }
+ , minImportedHostPointerAlignment{ minImportedHostPointerAlignment_ }
{
}
@@ -64911,8 +65007,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , externalMemoryRDMA( externalMemoryRDMA_ )
+ : pNext{ pNext_ }
+ , externalMemoryRDMA{ externalMemoryRDMA_ }
{
}
@@ -65010,8 +65106,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , screenBufferImport( screenBufferImport_ )
+ : pNext{ pNext_ }
+ , screenBufferImport{ screenBufferImport_ }
{
}
@@ -65112,8 +65208,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , handleType{ handleType_ }
{
}
@@ -65213,9 +65309,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceFaultFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceFault_ = {},
VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceFault( deviceFault_ )
- , deviceFaultVendorBinary( deviceFaultVendorBinary_ )
+ : pNext{ pNext_ }
+ , deviceFault{ deviceFault_ }
+ , deviceFaultVendorBinary{ deviceFaultVendorBinary_ }
{
}
@@ -65319,8 +65415,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , features( features_ )
+ : pNext{ pNext_ }
+ , features{ features_ }
{
}
@@ -65435,24 +65531,24 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , denormBehaviorIndependence( denormBehaviorIndependence_ )
- , roundingModeIndependence( roundingModeIndependence_ )
- , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
- , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
- , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
- , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
- , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
- , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
- , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
- , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
- , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
- , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
- , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
- , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
- , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
- , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
- , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
+ : pNext{ pNext_ }
+ , denormBehaviorIndependence{ denormBehaviorIndependence_ }
+ , roundingModeIndependence{ roundingModeIndependence_ }
+ , shaderSignedZeroInfNanPreserveFloat16{ shaderSignedZeroInfNanPreserveFloat16_ }
+ , shaderSignedZeroInfNanPreserveFloat32{ shaderSignedZeroInfNanPreserveFloat32_ }
+ , shaderSignedZeroInfNanPreserveFloat64{ shaderSignedZeroInfNanPreserveFloat64_ }
+ , shaderDenormPreserveFloat16{ shaderDenormPreserveFloat16_ }
+ , shaderDenormPreserveFloat32{ shaderDenormPreserveFloat32_ }
+ , shaderDenormPreserveFloat64{ shaderDenormPreserveFloat64_ }
+ , shaderDenormFlushToZeroFloat16{ shaderDenormFlushToZeroFloat16_ }
+ , shaderDenormFlushToZeroFloat32{ shaderDenormFlushToZeroFloat32_ }
+ , shaderDenormFlushToZeroFloat64{ shaderDenormFlushToZeroFloat64_ }
+ , shaderRoundingModeRTEFloat16{ shaderRoundingModeRTEFloat16_ }
+ , shaderRoundingModeRTEFloat32{ shaderRoundingModeRTEFloat32_ }
+ , shaderRoundingModeRTEFloat64{ shaderRoundingModeRTEFloat64_ }
+ , shaderRoundingModeRTZFloat16{ shaderRoundingModeRTZFloat16_ }
+ , shaderRoundingModeRTZFloat32{ shaderRoundingModeRTZFloat32_ }
+ , shaderRoundingModeRTZFloat64{ shaderRoundingModeRTZFloat64_ }
{
}
@@ -65599,8 +65695,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
+ : pNext{ pNext_ }
+ , fragmentDensityMapDeferred{ fragmentDensityMapDeferred_ }
{
}
@@ -65700,11 +65796,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxSubsampledArrayLayers_ = {},
uint32_t maxDescriptorSetSubsampledSamplers_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subsampledLoads( subsampledLoads_ )
- , subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ )
- , maxSubsampledArrayLayers( maxSubsampledArrayLayers_ )
- , maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
+ : pNext{ pNext_ }
+ , subsampledLoads{ subsampledLoads_ }
+ , subsampledCoarseReconstructionEarlyAccess{ subsampledCoarseReconstructionEarlyAccess_ }
+ , maxSubsampledArrayLayers{ maxSubsampledArrayLayers_ }
+ , maxDescriptorSetSubsampledSamplers{ maxDescriptorSetSubsampledSamplers_ }
{
}
@@ -65799,10 +65895,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {},
VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityMap( fragmentDensityMap_ )
- , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ )
- , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
+ : pNext{ pNext_ }
+ , fragmentDensityMap{ fragmentDensityMap_ }
+ , fragmentDensityMapDynamic{ fragmentDensityMapDynamic_ }
+ , fragmentDensityMapNonSubsampledImages{ fragmentDensityMapNonSubsampledImages_ }
{
}
@@ -65921,8 +66017,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityMapOffset( fragmentDensityMapOffset_ )
+ : pNext{ pNext_ }
+ , fragmentDensityMapOffset{ fragmentDensityMapOffset_ }
{
}
@@ -66021,8 +66117,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityOffsetGranularity( fragmentDensityOffsetGranularity_ )
+ : pNext{ pNext_ }
+ , fragmentDensityOffsetGranularity{ fragmentDensityOffsetGranularity_ }
{
}
@@ -66108,10 +66204,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {},
VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minFragmentDensityTexelSize( minFragmentDensityTexelSize_ )
- , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ )
- , fragmentDensityInvocations( fragmentDensityInvocations_ )
+ : pNext{ pNext_ }
+ , minFragmentDensityTexelSize{ minFragmentDensityTexelSize_ }
+ , maxFragmentDensityTexelSize{ maxFragmentDensityTexelSize_ }
+ , fragmentDensityInvocations{ fragmentDensityInvocations_ }
{
}
@@ -66201,8 +66297,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentShaderBarycentric( fragmentShaderBarycentric_ )
+ : pNext{ pNext_ }
+ , fragmentShaderBarycentric{ fragmentShaderBarycentric_ }
{
}
@@ -66304,8 +66400,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , triStripVertexOrderIndependentOfProvokingVertex( triStripVertexOrderIndependentOfProvokingVertex_ )
+ : pNext{ pNext_ }
+ , triStripVertexOrderIndependentOfProvokingVertex{ triStripVertexOrderIndependentOfProvokingVertex_ }
{
}
@@ -66392,10 +66488,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {},
VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
- , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
- , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
+ : pNext{ pNext_ }
+ , fragmentShaderSampleInterlock{ fragmentShaderSampleInterlock_ }
+ , fragmentShaderPixelInterlock{ fragmentShaderPixelInterlock_ }
+ , fragmentShaderShadingRateInterlock{ fragmentShaderShadingRateInterlock_ }
{
}
@@ -66517,10 +66613,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {},
VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentShadingRateEnums( fragmentShadingRateEnums_ )
- , supersampleFragmentShadingRates( supersampleFragmentShadingRates_ )
- , noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
+ : pNext{ pNext_ }
+ , fragmentShadingRateEnums{ fragmentShadingRateEnums_ }
+ , supersampleFragmentShadingRates{ supersampleFragmentShadingRates_ }
+ , noInvocationFragmentShadingRates{ noInvocationFragmentShadingRates_ }
{
}
@@ -66641,8 +66737,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
+ : pNext{ pNext_ }
+ , maxFragmentShadingRateInvocationCount{ maxFragmentShadingRateInvocationCount_ }
{
}
@@ -66743,10 +66839,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {},
VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineFragmentShadingRate( pipelineFragmentShadingRate_ )
- , primitiveFragmentShadingRate( primitiveFragmentShadingRate_ )
- , attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
+ : pNext{ pNext_ }
+ , pipelineFragmentShadingRate{ pipelineFragmentShadingRate_ }
+ , primitiveFragmentShadingRate{ primitiveFragmentShadingRate_ }
+ , attachmentFragmentShadingRate{ attachmentFragmentShadingRate_ }
{
}
@@ -66865,9 +66961,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampleCounts( sampleCounts_ )
- , fragmentSize( fragmentSize_ )
+ : pNext{ pNext_ }
+ , sampleCounts{ sampleCounts_ }
+ , fragmentSize{ fragmentSize_ }
{
}
@@ -66968,24 +67064,24 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {},
VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ )
- , maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ )
- , maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ )
- , primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ )
- , layeredShadingRateAttachments( layeredShadingRateAttachments_ )
- , fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ )
- , maxFragmentSize( maxFragmentSize_ )
- , maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ )
- , maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ )
- , maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ )
- , fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ )
- , fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ )
- , fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ )
- , fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ )
- , fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ )
- , fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ )
- , fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
+ : pNext{ pNext_ }
+ , minFragmentShadingRateAttachmentTexelSize{ minFragmentShadingRateAttachmentTexelSize_ }
+ , maxFragmentShadingRateAttachmentTexelSize{ maxFragmentShadingRateAttachmentTexelSize_ }
+ , maxFragmentShadingRateAttachmentTexelSizeAspectRatio{ maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ }
+ , primitiveFragmentShadingRateWithMultipleViewports{ primitiveFragmentShadingRateWithMultipleViewports_ }
+ , layeredShadingRateAttachments{ layeredShadingRateAttachments_ }
+ , fragmentShadingRateNonTrivialCombinerOps{ fragmentShadingRateNonTrivialCombinerOps_ }
+ , maxFragmentSize{ maxFragmentSize_ }
+ , maxFragmentSizeAspectRatio{ maxFragmentSizeAspectRatio_ }
+ , maxFragmentShadingRateCoverageSamples{ maxFragmentShadingRateCoverageSamples_ }
+ , maxFragmentShadingRateRasterizationSamples{ maxFragmentShadingRateRasterizationSamples_ }
+ , fragmentShadingRateWithShaderDepthStencilWrites{ fragmentShadingRateWithShaderDepthStencilWrites_ }
+ , fragmentShadingRateWithSampleMask{ fragmentShadingRateWithSampleMask_ }
+ , fragmentShadingRateWithShaderSampleMask{ fragmentShadingRateWithShaderSampleMask_ }
+ , fragmentShadingRateWithConservativeRasterization{ fragmentShadingRateWithConservativeRasterization_ }
+ , fragmentShadingRateWithFragmentShaderInterlock{ fragmentShadingRateWithFragmentShaderInterlock_ }
+ , fragmentShadingRateWithCustomSampleLocations{ fragmentShadingRateWithCustomSampleLocations_ }
+ , fragmentShadingRateStrictMultiplyCombiner{ fragmentShadingRateStrictMultiplyCombiner_ }
{
}
@@ -67135,8 +67231,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , frameBoundary( frameBoundary_ )
+ : pNext{ pNext_ }
+ , frameBoundary{ frameBoundary_ }
{
}
@@ -67232,8 +67328,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , globalPriorityQuery( globalPriorityQuery_ )
+ : pNext{ pNext_ }
+ , globalPriorityQuery{ globalPriorityQuery_ }
{
}
@@ -67332,8 +67428,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , graphicsPipelineLibrary( graphicsPipelineLibrary_ )
+ : pNext{ pNext_ }
+ , graphicsPipelineLibrary{ graphicsPipelineLibrary_ }
{
}
@@ -67433,9 +67529,9 @@ namespace VULKAN_HPP_NAMESPACE
PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ = {},
VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , graphicsPipelineLibraryFastLinking( graphicsPipelineLibraryFastLinking_ )
- , graphicsPipelineLibraryIndependentInterpolationDecoration( graphicsPipelineLibraryIndependentInterpolationDecoration_ )
+ : pNext{ pNext_ }
+ , graphicsPipelineLibraryFastLinking{ graphicsPipelineLibraryFastLinking_ }
+ , graphicsPipelineLibraryIndependentInterpolationDecoration{ graphicsPipelineLibraryIndependentInterpolationDecoration_ }
{
}
@@ -67546,10 +67642,10 @@ namespace VULKAN_HPP_NAMESPACE
std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const & physicalDevices_ = {},
VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , physicalDeviceCount( physicalDeviceCount_ )
- , physicalDevices( physicalDevices_ )
- , subsetAllocation( subsetAllocation_ )
+ : pNext{ pNext_ }
+ , physicalDeviceCount{ physicalDeviceCount_ }
+ , physicalDevices{ physicalDevices_ }
+ , subsetAllocation{ subsetAllocation_ }
{
}
@@ -67666,8 +67762,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hostImageCopy( hostImageCopy_ )
+ : pNext{ pNext_ }
+ , hostImageCopy{ hostImageCopy_ }
{
}
@@ -67768,13 +67864,13 @@ namespace VULKAN_HPP_NAMESPACE
std::array<uint8_t, VK_UUID_SIZE> const & optimalTilingLayoutUUID_ = {},
VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , copySrcLayoutCount( copySrcLayoutCount_ )
- , pCopySrcLayouts( pCopySrcLayouts_ )
- , copyDstLayoutCount( copyDstLayoutCount_ )
- , pCopyDstLayouts( pCopyDstLayouts_ )
- , optimalTilingLayoutUUID( optimalTilingLayoutUUID_ )
- , identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
+ : pNext{ pNext_ }
+ , copySrcLayoutCount{ copySrcLayoutCount_ }
+ , pCopySrcLayouts{ pCopySrcLayouts_ }
+ , copyDstLayoutCount{ copyDstLayoutCount_ }
+ , pCopyDstLayouts{ pCopyDstLayouts_ }
+ , optimalTilingLayoutUUID{ optimalTilingLayoutUUID_ }
+ , identicalMemoryTypeRequirements{ identicalMemoryTypeRequirements_ }
{
}
@@ -67955,8 +68051,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hostQueryReset( hostQueryReset_ )
+ : pNext{ pNext_ }
+ , hostQueryReset{ hostQueryReset_ }
{
}
@@ -68058,12 +68154,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t deviceNodeMask_ = {},
VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceUUID( deviceUUID_ )
- , driverUUID( driverUUID_ )
- , deviceLUID( deviceLUID_ )
- , deviceNodeMask( deviceNodeMask_ )
- , deviceLUIDValid( deviceLUIDValid_ )
+ : pNext{ pNext_ }
+ , deviceUUID{ deviceUUID_ }
+ , driverUUID{ driverUUID_ }
+ , deviceLUID{ deviceLUID_ }
+ , deviceNodeMask{ deviceNodeMask_ }
+ , deviceLUIDValid{ deviceLUIDValid_ }
{
}
@@ -68159,9 +68255,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ = {},
VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , image2DViewOf3D( image2DViewOf3D_ )
- , sampler2DViewOf3D( sampler2DViewOf3D_ )
+ : pNext{ pNext_ }
+ , image2DViewOf3D{ image2DViewOf3D_ }
+ , sampler2DViewOf3D{ sampler2DViewOf3D_ }
{
}
@@ -68255,6 +68351,205 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceImage2DViewOf3DFeaturesEXT;
};
+ struct PhysicalDeviceImageAlignmentControlFeaturesMESA
+ {
+ using NativeType = VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageAlignmentControlFeaturesMESA;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceImageAlignmentControlFeaturesMESA( VULKAN_HPP_NAMESPACE::Bool32 imageAlignmentControl_ = {},
+ void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext{ pNext_ }
+ , imageAlignmentControl{ imageAlignmentControl_ }
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDeviceImageAlignmentControlFeaturesMESA( PhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceImageAlignmentControlFeaturesMESA( VkPhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceImageAlignmentControlFeaturesMESA( *reinterpret_cast<PhysicalDeviceImageAlignmentControlFeaturesMESA const *>( &rhs ) )
+ {
+ }
+
+ PhysicalDeviceImageAlignmentControlFeaturesMESA & operator=( PhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ PhysicalDeviceImageAlignmentControlFeaturesMESA & operator=( VkPhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageAlignmentControlFeaturesMESA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageAlignmentControlFeaturesMESA &
+ setImageAlignmentControl( VULKAN_HPP_NAMESPACE::Bool32 imageAlignmentControl_ ) VULKAN_HPP_NOEXCEPT
+ {
+ imageAlignmentControl = imageAlignmentControl_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceImageAlignmentControlFeaturesMESA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceImageAlignmentControlFeaturesMESA *>( this );
+ }
+
+ operator VkPhysicalDeviceImageAlignmentControlFeaturesMESA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceImageAlignmentControlFeaturesMESA *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, imageAlignmentControl );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceImageAlignmentControlFeaturesMESA const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageAlignmentControl == rhs.imageAlignmentControl );
+# endif
+ }
+
+ bool operator!=( PhysicalDeviceImageAlignmentControlFeaturesMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageAlignmentControlFeaturesMESA;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 imageAlignmentControl = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceImageAlignmentControlFeaturesMESA>
+ {
+ using Type = PhysicalDeviceImageAlignmentControlFeaturesMESA;
+ };
+
+ struct PhysicalDeviceImageAlignmentControlPropertiesMESA
+ {
+ using NativeType = VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageAlignmentControlPropertiesMESA;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceImageAlignmentControlPropertiesMESA( uint32_t supportedImageAlignmentMask_ = {},
+ void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext{ pNext_ }
+ , supportedImageAlignmentMask{ supportedImageAlignmentMask_ }
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDeviceImageAlignmentControlPropertiesMESA( PhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceImageAlignmentControlPropertiesMESA( VkPhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceImageAlignmentControlPropertiesMESA( *reinterpret_cast<PhysicalDeviceImageAlignmentControlPropertiesMESA const *>( &rhs ) )
+ {
+ }
+
+ PhysicalDeviceImageAlignmentControlPropertiesMESA &
+ operator=( PhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ PhysicalDeviceImageAlignmentControlPropertiesMESA & operator=( VkPhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageAlignmentControlPropertiesMESA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageAlignmentControlPropertiesMESA &
+ setSupportedImageAlignmentMask( uint32_t supportedImageAlignmentMask_ ) VULKAN_HPP_NOEXCEPT
+ {
+ supportedImageAlignmentMask = supportedImageAlignmentMask_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceImageAlignmentControlPropertiesMESA const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceImageAlignmentControlPropertiesMESA *>( this );
+ }
+
+ operator VkPhysicalDeviceImageAlignmentControlPropertiesMESA &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceImageAlignmentControlPropertiesMESA *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, supportedImageAlignmentMask );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceImageAlignmentControlPropertiesMESA const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedImageAlignmentMask == rhs.supportedImageAlignmentMask );
+# endif
+ }
+
+ bool operator!=( PhysicalDeviceImageAlignmentControlPropertiesMESA const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageAlignmentControlPropertiesMESA;
+ void * pNext = {};
+ uint32_t supportedImageAlignmentMask = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceImageAlignmentControlPropertiesMESA>
+ {
+ using Type = PhysicalDeviceImageAlignmentControlPropertiesMESA;
+ };
+
struct PhysicalDeviceImageCompressionControlFeaturesEXT
{
using NativeType = VkPhysicalDeviceImageCompressionControlFeaturesEXT;
@@ -68265,8 +68560,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageCompressionControl( imageCompressionControl_ )
+ : pNext{ pNext_ }
+ , imageCompressionControl{ imageCompressionControl_ }
{
}
@@ -68364,8 +68659,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageCompressionControlSwapchain( imageCompressionControlSwapchain_ )
+ : pNext{ pNext_ }
+ , imageCompressionControlSwapchain{ imageCompressionControlSwapchain_ }
{
}
@@ -68470,11 +68765,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queueFamilyIndexCount_ = {},
const uint32_t * pQueueFamilyIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , drmFormatModifier( drmFormatModifier_ )
- , sharingMode( sharingMode_ )
- , queueFamilyIndexCount( queueFamilyIndexCount_ )
- , pQueueFamilyIndices( pQueueFamilyIndices_ )
+ : pNext{ pNext_ }
+ , drmFormatModifier{ drmFormatModifier_ }
+ , sharingMode{ sharingMode_ }
+ , queueFamilyIndexCount{ queueFamilyIndexCount_ }
+ , pQueueFamilyIndices{ pQueueFamilyIndices_ }
{
}
@@ -68625,12 +68920,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , type( type_ )
- , tiling( tiling_ )
- , usage( usage_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , type{ type_ }
+ , tiling{ tiling_ }
+ , usage{ usage_ }
+ , flags{ flags_ }
{
}
@@ -68763,8 +69058,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , textureBlockMatch2( textureBlockMatch2_ )
+ : pNext{ pNext_ }
+ , textureBlockMatch2{ textureBlockMatch2_ }
{
}
@@ -68861,8 +69156,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxBlockMatchWindow( maxBlockMatchWindow_ )
+ : pNext{ pNext_ }
+ , maxBlockMatchWindow{ maxBlockMatchWindow_ }
{
}
@@ -68946,10 +69241,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ = {},
VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , textureSampleWeighted( textureSampleWeighted_ )
- , textureBoxFilter( textureBoxFilter_ )
- , textureBlockMatch( textureBlockMatch_ )
+ : pNext{ pNext_ }
+ , textureSampleWeighted{ textureSampleWeighted_ }
+ , textureBoxFilter{ textureBoxFilter_ }
+ , textureBlockMatch{ textureBlockMatch_ }
{
}
@@ -69070,11 +69365,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion_ = {},
VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxWeightFilterPhases( maxWeightFilterPhases_ )
- , maxWeightFilterDimension( maxWeightFilterDimension_ )
- , maxBlockMatchRegion( maxBlockMatchRegion_ )
- , maxBoxFilterBlockSize( maxBoxFilterBlockSize_ )
+ : pNext{ pNext_ }
+ , maxWeightFilterPhases{ maxWeightFilterPhases_ }
+ , maxWeightFilterDimension{ maxWeightFilterDimension_ }
+ , maxBlockMatchRegion{ maxBlockMatchRegion_ }
+ , maxBoxFilterBlockSize{ maxBoxFilterBlockSize_ }
{
}
@@ -69166,8 +69461,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , robustImageAccess( robustImageAccess_ )
+ : pNext{ pNext_ }
+ , robustImageAccess{ robustImageAccess_ }
{
}
@@ -69265,8 +69560,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageSlicedViewOf3D( imageSlicedViewOf3D_ )
+ : pNext{ pNext_ }
+ , imageSlicedViewOf3D{ imageSlicedViewOf3D_ }
{
}
@@ -69364,8 +69659,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageViewType( imageViewType_ )
+ : pNext{ pNext_ }
+ , imageViewType{ imageViewType_ }
{
}
@@ -69461,8 +69756,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 minLod_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minLod( minLod_ )
+ : pNext{ pNext_ }
+ , minLod{ minLod_ }
{
}
@@ -69558,8 +69853,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imagelessFramebuffer( imagelessFramebuffer_ )
+ : pNext{ pNext_ }
+ , imagelessFramebuffer{ imagelessFramebuffer_ }
{
}
@@ -69658,8 +69953,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , indexTypeUint8( indexTypeUint8_ )
+ : pNext{ pNext_ }
+ , indexTypeUint8{ indexTypeUint8_ }
{
}
@@ -69757,8 +70052,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , inheritedViewportScissor2D( inheritedViewportScissor2D_ )
+ : pNext{ pNext_ }
+ , inheritedViewportScissor2D{ inheritedViewportScissor2D_ }
{
}
@@ -69857,9 +70152,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , inlineUniformBlock( inlineUniformBlock_ )
- , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
+ : pNext{ pNext_ }
+ , inlineUniformBlock{ inlineUniformBlock_ }
+ , descriptorBindingInlineUniformBlockUpdateAfterBind{ descriptorBindingInlineUniformBlockUpdateAfterBind_ }
{
}
@@ -69971,12 +70266,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
- , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
- , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
- , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
- , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
+ : pNext{ pNext_ }
+ , maxInlineUniformBlockSize{ maxInlineUniformBlockSize_ }
+ , maxPerStageDescriptorInlineUniformBlocks{ maxPerStageDescriptorInlineUniformBlocks_ }
+ , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks{ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ }
+ , maxDescriptorSetInlineUniformBlocks{ maxDescriptorSetInlineUniformBlocks_ }
+ , maxDescriptorSetUpdateAfterBindInlineUniformBlocks{ maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ }
{
}
@@ -70080,8 +70375,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , invocationMask( invocationMask_ )
+ : pNext{ pNext_ }
+ , invocationMask{ invocationMask_ }
{
}
@@ -70178,8 +70473,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT(
VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI_ = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , underlyingAPI( underlyingAPI_ )
+ : pNext{ pNext_ }
+ , underlyingAPI{ underlyingAPI_ }
{
}
@@ -70261,8 +70556,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyDitheringFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 legacyDithering_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , legacyDithering( legacyDithering_ )
+ : pNext{ pNext_ }
+ , legacyDithering{ legacyDithering_ }
{
}
@@ -70348,6 +70643,205 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceLegacyDitheringFeaturesEXT;
};
+ struct PhysicalDeviceLegacyVertexAttributesFeaturesEXT
+ {
+ using NativeType = VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyVertexAttributesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 legacyVertexAttributes_ = {},
+ void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext{ pNext_ }
+ , legacyVertexAttributes{ legacyVertexAttributes_ }
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDeviceLegacyVertexAttributesFeaturesEXT( PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceLegacyVertexAttributesFeaturesEXT( VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceLegacyVertexAttributesFeaturesEXT( *reinterpret_cast<PhysicalDeviceLegacyVertexAttributesFeaturesEXT const *>( &rhs ) )
+ {
+ }
+
+ PhysicalDeviceLegacyVertexAttributesFeaturesEXT & operator=( PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ PhysicalDeviceLegacyVertexAttributesFeaturesEXT & operator=( VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesFeaturesEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyVertexAttributesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyVertexAttributesFeaturesEXT &
+ setLegacyVertexAttributes( VULKAN_HPP_NAMESPACE::Bool32 legacyVertexAttributes_ ) VULKAN_HPP_NOEXCEPT
+ {
+ legacyVertexAttributes = legacyVertexAttributes_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT *>( this );
+ }
+
+ operator VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, legacyVertexAttributes );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( legacyVertexAttributes == rhs.legacyVertexAttributes );
+# endif
+ }
+
+ bool operator!=( PhysicalDeviceLegacyVertexAttributesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 legacyVertexAttributes = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceLegacyVertexAttributesFeaturesEXT>
+ {
+ using Type = PhysicalDeviceLegacyVertexAttributesFeaturesEXT;
+ };
+
+ struct PhysicalDeviceLegacyVertexAttributesPropertiesEXT
+ {
+ using NativeType = VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyVertexAttributesPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 nativeUnalignedPerformance_ = {},
+ void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext{ pNext_ }
+ , nativeUnalignedPerformance{ nativeUnalignedPerformance_ }
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR
+ PhysicalDeviceLegacyVertexAttributesPropertiesEXT( PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceLegacyVertexAttributesPropertiesEXT( VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceLegacyVertexAttributesPropertiesEXT( *reinterpret_cast<PhysicalDeviceLegacyVertexAttributesPropertiesEXT const *>( &rhs ) )
+ {
+ }
+
+ PhysicalDeviceLegacyVertexAttributesPropertiesEXT &
+ operator=( PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ PhysicalDeviceLegacyVertexAttributesPropertiesEXT & operator=( VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyVertexAttributesPropertiesEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyVertexAttributesPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyVertexAttributesPropertiesEXT &
+ setNativeUnalignedPerformance( VULKAN_HPP_NAMESPACE::Bool32 nativeUnalignedPerformance_ ) VULKAN_HPP_NOEXCEPT
+ {
+ nativeUnalignedPerformance = nativeUnalignedPerformance_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT *>( this );
+ }
+
+ operator VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, nativeUnalignedPerformance );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( nativeUnalignedPerformance == rhs.nativeUnalignedPerformance );
+# endif
+ }
+
+ bool operator!=( PhysicalDeviceLegacyVertexAttributesPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 nativeUnalignedPerformance = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceLegacyVertexAttributesPropertiesEXT>
+ {
+ using Type = PhysicalDeviceLegacyVertexAttributesPropertiesEXT;
+ };
+
struct PhysicalDeviceLimits
{
using NativeType = VkPhysicalDeviceLimits;
@@ -70459,112 +70953,112 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT
- : maxImageDimension1D( maxImageDimension1D_ )
- , maxImageDimension2D( maxImageDimension2D_ )
- , maxImageDimension3D( maxImageDimension3D_ )
- , maxImageDimensionCube( maxImageDimensionCube_ )
- , maxImageArrayLayers( maxImageArrayLayers_ )
- , maxTexelBufferElements( maxTexelBufferElements_ )
- , maxUniformBufferRange( maxUniformBufferRange_ )
- , maxStorageBufferRange( maxStorageBufferRange_ )
- , maxPushConstantsSize( maxPushConstantsSize_ )
- , maxMemoryAllocationCount( maxMemoryAllocationCount_ )
- , maxSamplerAllocationCount( maxSamplerAllocationCount_ )
- , bufferImageGranularity( bufferImageGranularity_ )
- , sparseAddressSpaceSize( sparseAddressSpaceSize_ )
- , maxBoundDescriptorSets( maxBoundDescriptorSets_ )
- , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ )
- , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ )
- , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ )
- , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ )
- , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ )
- , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ )
- , maxPerStageResources( maxPerStageResources_ )
- , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ )
- , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ )
- , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ )
- , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ )
- , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ )
- , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ )
- , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ )
- , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ )
- , maxVertexInputAttributes( maxVertexInputAttributes_ )
- , maxVertexInputBindings( maxVertexInputBindings_ )
- , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ )
- , maxVertexInputBindingStride( maxVertexInputBindingStride_ )
- , maxVertexOutputComponents( maxVertexOutputComponents_ )
- , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ )
- , maxTessellationPatchSize( maxTessellationPatchSize_ )
- , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ )
- , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ )
- , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ )
- , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ )
- , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ )
- , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ )
- , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ )
- , maxGeometryInputComponents( maxGeometryInputComponents_ )
- , maxGeometryOutputComponents( maxGeometryOutputComponents_ )
- , maxGeometryOutputVertices( maxGeometryOutputVertices_ )
- , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ )
- , maxFragmentInputComponents( maxFragmentInputComponents_ )
- , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ )
- , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ )
- , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ )
- , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ )
- , maxComputeWorkGroupCount( maxComputeWorkGroupCount_ )
- , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ )
- , maxComputeWorkGroupSize( maxComputeWorkGroupSize_ )
- , subPixelPrecisionBits( subPixelPrecisionBits_ )
- , subTexelPrecisionBits( subTexelPrecisionBits_ )
- , mipmapPrecisionBits( mipmapPrecisionBits_ )
- , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ )
- , maxDrawIndirectCount( maxDrawIndirectCount_ )
- , maxSamplerLodBias( maxSamplerLodBias_ )
- , maxSamplerAnisotropy( maxSamplerAnisotropy_ )
- , maxViewports( maxViewports_ )
- , maxViewportDimensions( maxViewportDimensions_ )
- , viewportBoundsRange( viewportBoundsRange_ )
- , viewportSubPixelBits( viewportSubPixelBits_ )
- , minMemoryMapAlignment( minMemoryMapAlignment_ )
- , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ )
- , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ )
- , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ )
- , minTexelOffset( minTexelOffset_ )
- , maxTexelOffset( maxTexelOffset_ )
- , minTexelGatherOffset( minTexelGatherOffset_ )
- , maxTexelGatherOffset( maxTexelGatherOffset_ )
- , minInterpolationOffset( minInterpolationOffset_ )
- , maxInterpolationOffset( maxInterpolationOffset_ )
- , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ )
- , maxFramebufferWidth( maxFramebufferWidth_ )
- , maxFramebufferHeight( maxFramebufferHeight_ )
- , maxFramebufferLayers( maxFramebufferLayers_ )
- , framebufferColorSampleCounts( framebufferColorSampleCounts_ )
- , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ )
- , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ )
- , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ )
- , maxColorAttachments( maxColorAttachments_ )
- , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ )
- , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ )
- , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ )
- , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ )
- , storageImageSampleCounts( storageImageSampleCounts_ )
- , maxSampleMaskWords( maxSampleMaskWords_ )
- , timestampComputeAndGraphics( timestampComputeAndGraphics_ )
- , timestampPeriod( timestampPeriod_ )
- , maxClipDistances( maxClipDistances_ )
- , maxCullDistances( maxCullDistances_ )
- , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ )
- , discreteQueuePriorities( discreteQueuePriorities_ )
- , pointSizeRange( pointSizeRange_ )
- , lineWidthRange( lineWidthRange_ )
- , pointSizeGranularity( pointSizeGranularity_ )
- , lineWidthGranularity( lineWidthGranularity_ )
- , strictLines( strictLines_ )
- , standardSampleLocations( standardSampleLocations_ )
- , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ )
- , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ )
- , nonCoherentAtomSize( nonCoherentAtomSize_ )
+ : maxImageDimension1D{ maxImageDimension1D_ }
+ , maxImageDimension2D{ maxImageDimension2D_ }
+ , maxImageDimension3D{ maxImageDimension3D_ }
+ , maxImageDimensionCube{ maxImageDimensionCube_ }
+ , maxImageArrayLayers{ maxImageArrayLayers_ }
+ , maxTexelBufferElements{ maxTexelBufferElements_ }
+ , maxUniformBufferRange{ maxUniformBufferRange_ }
+ , maxStorageBufferRange{ maxStorageBufferRange_ }
+ , maxPushConstantsSize{ maxPushConstantsSize_ }
+ , maxMemoryAllocationCount{ maxMemoryAllocationCount_ }
+ , maxSamplerAllocationCount{ maxSamplerAllocationCount_ }
+ , bufferImageGranularity{ bufferImageGranularity_ }
+ , sparseAddressSpaceSize{ sparseAddressSpaceSize_ }
+ , maxBoundDescriptorSets{ maxBoundDescriptorSets_ }
+ , maxPerStageDescriptorSamplers{ maxPerStageDescriptorSamplers_ }
+ , maxPerStageDescriptorUniformBuffers{ maxPerStageDescriptorUniformBuffers_ }
+ , maxPerStageDescriptorStorageBuffers{ maxPerStageDescriptorStorageBuffers_ }
+ , maxPerStageDescriptorSampledImages{ maxPerStageDescriptorSampledImages_ }
+ , maxPerStageDescriptorStorageImages{ maxPerStageDescriptorStorageImages_ }
+ , maxPerStageDescriptorInputAttachments{ maxPerStageDescriptorInputAttachments_ }
+ , maxPerStageResources{ maxPerStageResources_ }
+ , maxDescriptorSetSamplers{ maxDescriptorSetSamplers_ }
+ , maxDescriptorSetUniformBuffers{ maxDescriptorSetUniformBuffers_ }
+ , maxDescriptorSetUniformBuffersDynamic{ maxDescriptorSetUniformBuffersDynamic_ }
+ , maxDescriptorSetStorageBuffers{ maxDescriptorSetStorageBuffers_ }
+ , maxDescriptorSetStorageBuffersDynamic{ maxDescriptorSetStorageBuffersDynamic_ }
+ , maxDescriptorSetSampledImages{ maxDescriptorSetSampledImages_ }
+ , maxDescriptorSetStorageImages{ maxDescriptorSetStorageImages_ }
+ , maxDescriptorSetInputAttachments{ maxDescriptorSetInputAttachments_ }
+ , maxVertexInputAttributes{ maxVertexInputAttributes_ }
+ , maxVertexInputBindings{ maxVertexInputBindings_ }
+ , maxVertexInputAttributeOffset{ maxVertexInputAttributeOffset_ }
+ , maxVertexInputBindingStride{ maxVertexInputBindingStride_ }
+ , maxVertexOutputComponents{ maxVertexOutputComponents_ }
+ , maxTessellationGenerationLevel{ maxTessellationGenerationLevel_ }
+ , maxTessellationPatchSize{ maxTessellationPatchSize_ }
+ , maxTessellationControlPerVertexInputComponents{ maxTessellationControlPerVertexInputComponents_ }
+ , maxTessellationControlPerVertexOutputComponents{ maxTessellationControlPerVertexOutputComponents_ }
+ , maxTessellationControlPerPatchOutputComponents{ maxTessellationControlPerPatchOutputComponents_ }
+ , maxTessellationControlTotalOutputComponents{ maxTessellationControlTotalOutputComponents_ }
+ , maxTessellationEvaluationInputComponents{ maxTessellationEvaluationInputComponents_ }
+ , maxTessellationEvaluationOutputComponents{ maxTessellationEvaluationOutputComponents_ }
+ , maxGeometryShaderInvocations{ maxGeometryShaderInvocations_ }
+ , maxGeometryInputComponents{ maxGeometryInputComponents_ }
+ , maxGeometryOutputComponents{ maxGeometryOutputComponents_ }
+ , maxGeometryOutputVertices{ maxGeometryOutputVertices_ }
+ , maxGeometryTotalOutputComponents{ maxGeometryTotalOutputComponents_ }
+ , maxFragmentInputComponents{ maxFragmentInputComponents_ }
+ , maxFragmentOutputAttachments{ maxFragmentOutputAttachments_ }
+ , maxFragmentDualSrcAttachments{ maxFragmentDualSrcAttachments_ }
+ , maxFragmentCombinedOutputResources{ maxFragmentCombinedOutputResources_ }
+ , maxComputeSharedMemorySize{ maxComputeSharedMemorySize_ }
+ , maxComputeWorkGroupCount{ maxComputeWorkGroupCount_ }
+ , maxComputeWorkGroupInvocations{ maxComputeWorkGroupInvocations_ }
+ , maxComputeWorkGroupSize{ maxComputeWorkGroupSize_ }
+ , subPixelPrecisionBits{ subPixelPrecisionBits_ }
+ , subTexelPrecisionBits{ subTexelPrecisionBits_ }
+ , mipmapPrecisionBits{ mipmapPrecisionBits_ }
+ , maxDrawIndexedIndexValue{ maxDrawIndexedIndexValue_ }
+ , maxDrawIndirectCount{ maxDrawIndirectCount_ }
+ , maxSamplerLodBias{ maxSamplerLodBias_ }
+ , maxSamplerAnisotropy{ maxSamplerAnisotropy_ }
+ , maxViewports{ maxViewports_ }
+ , maxViewportDimensions{ maxViewportDimensions_ }
+ , viewportBoundsRange{ viewportBoundsRange_ }
+ , viewportSubPixelBits{ viewportSubPixelBits_ }
+ , minMemoryMapAlignment{ minMemoryMapAlignment_ }
+ , minTexelBufferOffsetAlignment{ minTexelBufferOffsetAlignment_ }
+ , minUniformBufferOffsetAlignment{ minUniformBufferOffsetAlignment_ }
+ , minStorageBufferOffsetAlignment{ minStorageBufferOffsetAlignment_ }
+ , minTexelOffset{ minTexelOffset_ }
+ , maxTexelOffset{ maxTexelOffset_ }
+ , minTexelGatherOffset{ minTexelGatherOffset_ }
+ , maxTexelGatherOffset{ maxTexelGatherOffset_ }
+ , minInterpolationOffset{ minInterpolationOffset_ }
+ , maxInterpolationOffset{ maxInterpolationOffset_ }
+ , subPixelInterpolationOffsetBits{ subPixelInterpolationOffsetBits_ }
+ , maxFramebufferWidth{ maxFramebufferWidth_ }
+ , maxFramebufferHeight{ maxFramebufferHeight_ }
+ , maxFramebufferLayers{ maxFramebufferLayers_ }
+ , framebufferColorSampleCounts{ framebufferColorSampleCounts_ }
+ , framebufferDepthSampleCounts{ framebufferDepthSampleCounts_ }
+ , framebufferStencilSampleCounts{ framebufferStencilSampleCounts_ }
+ , framebufferNoAttachmentsSampleCounts{ framebufferNoAttachmentsSampleCounts_ }
+ , maxColorAttachments{ maxColorAttachments_ }
+ , sampledImageColorSampleCounts{ sampledImageColorSampleCounts_ }
+ , sampledImageIntegerSampleCounts{ sampledImageIntegerSampleCounts_ }
+ , sampledImageDepthSampleCounts{ sampledImageDepthSampleCounts_ }
+ , sampledImageStencilSampleCounts{ sampledImageStencilSampleCounts_ }
+ , storageImageSampleCounts{ storageImageSampleCounts_ }
+ , maxSampleMaskWords{ maxSampleMaskWords_ }
+ , timestampComputeAndGraphics{ timestampComputeAndGraphics_ }
+ , timestampPeriod{ timestampPeriod_ }
+ , maxClipDistances{ maxClipDistances_ }
+ , maxCullDistances{ maxCullDistances_ }
+ , maxCombinedClipAndCullDistances{ maxCombinedClipAndCullDistances_ }
+ , discreteQueuePriorities{ discreteQueuePriorities_ }
+ , pointSizeRange{ pointSizeRange_ }
+ , lineWidthRange{ lineWidthRange_ }
+ , pointSizeGranularity{ pointSizeGranularity_ }
+ , lineWidthGranularity{ lineWidthGranularity_ }
+ , strictLines{ strictLines_ }
+ , standardSampleLocations{ standardSampleLocations_ }
+ , optimalBufferCopyOffsetAlignment{ optimalBufferCopyOffsetAlignment_ }
+ , optimalBufferCopyRowPitchAlignment{ optimalBufferCopyRowPitchAlignment_ }
+ , nonCoherentAtomSize{ nonCoherentAtomSize_ }
{
}
@@ -71019,13 +71513,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {},
VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rectangularLines( rectangularLines_ )
- , bresenhamLines( bresenhamLines_ )
- , smoothLines( smoothLines_ )
- , stippledRectangularLines( stippledRectangularLines_ )
- , stippledBresenhamLines( stippledBresenhamLines_ )
- , stippledSmoothLines( stippledSmoothLines_ )
+ : pNext{ pNext_ }
+ , rectangularLines{ rectangularLines_ }
+ , bresenhamLines{ bresenhamLines_ }
+ , smoothLines{ smoothLines_ }
+ , stippledRectangularLines{ stippledRectangularLines_ }
+ , stippledBresenhamLines{ stippledBresenhamLines_ }
+ , stippledSmoothLines{ stippledSmoothLines_ }
{
}
@@ -71170,8 +71664,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesKHR( uint32_t lineSubPixelPrecisionBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
+ : pNext{ pNext_ }
+ , lineSubPixelPrecisionBits{ lineSubPixelPrecisionBits_ }
{
}
@@ -71255,8 +71749,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceLinearColorAttachmentFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , linearColorAttachment( linearColorAttachment_ )
+ : pNext{ pNext_ }
+ , linearColorAttachment{ linearColorAttachment_ }
{
}
@@ -71355,9 +71849,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxPerSetDescriptors( maxPerSetDescriptors_ )
- , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
+ : pNext{ pNext_ }
+ , maxPerSetDescriptors{ maxPerSetDescriptors_ }
+ , maxMemoryAllocationSize{ maxMemoryAllocationSize_ }
{
}
@@ -71442,8 +71936,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maintenance4( maintenance4_ )
+ : pNext{ pNext_ }
+ , maintenance4{ maintenance4_ }
{
}
@@ -71541,8 +72035,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxBufferSize( maxBufferSize_ )
+ : pNext{ pNext_ }
+ , maxBufferSize{ maxBufferSize_ }
{
}
@@ -71625,8 +72119,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maintenance5( maintenance5_ )
+ : pNext{ pNext_ }
+ , maintenance5{ maintenance5_ }
{
}
@@ -71727,13 +72221,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram_ = {},
VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , earlyFragmentMultisampleCoverageAfterSampleCounting( earlyFragmentMultisampleCoverageAfterSampleCounting_ )
- , earlyFragmentSampleMaskTestBeforeSampleCounting( earlyFragmentSampleMaskTestBeforeSampleCounting_ )
- , depthStencilSwizzleOneSupport( depthStencilSwizzleOneSupport_ )
- , polygonModePointSize( polygonModePointSize_ )
- , nonStrictSinglePixelWideLinesUseParallelogram( nonStrictSinglePixelWideLinesUseParallelogram_ )
- , nonStrictWideLinesUseParallelogram( nonStrictWideLinesUseParallelogram_ )
+ : pNext{ pNext_ }
+ , earlyFragmentMultisampleCoverageAfterSampleCounting{ earlyFragmentMultisampleCoverageAfterSampleCounting_ }
+ , earlyFragmentSampleMaskTestBeforeSampleCounting{ earlyFragmentSampleMaskTestBeforeSampleCounting_ }
+ , depthStencilSwizzleOneSupport{ depthStencilSwizzleOneSupport_ }
+ , polygonModePointSize{ polygonModePointSize_ }
+ , nonStrictSinglePixelWideLinesUseParallelogram{ nonStrictSinglePixelWideLinesUseParallelogram_ }
+ , nonStrictWideLinesUseParallelogram{ nonStrictWideLinesUseParallelogram_ }
{
}
@@ -71838,8 +72332,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance6FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 maintenance6_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maintenance6( maintenance6_ )
+ : pNext{ pNext_ }
+ , maintenance6{ maintenance6_ }
{
}
@@ -71937,10 +72431,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxCombinedImageSamplerDescriptorCount_ = {},
VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateClampCombinerInputs_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , blockTexelViewCompatibleMultipleLayers( blockTexelViewCompatibleMultipleLayers_ )
- , maxCombinedImageSamplerDescriptorCount( maxCombinedImageSamplerDescriptorCount_ )
- , fragmentShadingRateClampCombinerInputs( fragmentShadingRateClampCombinerInputs_ )
+ : pNext{ pNext_ }
+ , blockTexelViewCompatibleMultipleLayers{ blockTexelViewCompatibleMultipleLayers_ }
+ , maxCombinedImageSamplerDescriptorCount{ maxCombinedImageSamplerDescriptorCount_ }
+ , fragmentShadingRateClampCombinerInputs{ fragmentShadingRateClampCombinerInputs_ }
{
}
@@ -72032,10 +72526,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 memoryMapRangePlaced_ = {},
VULKAN_HPP_NAMESPACE::Bool32 memoryUnmapReserve_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryMapPlaced( memoryMapPlaced_ )
- , memoryMapRangePlaced( memoryMapRangePlaced_ )
- , memoryUnmapReserve( memoryUnmapReserve_ )
+ : pNext{ pNext_ }
+ , memoryMapPlaced{ memoryMapPlaced_ }
+ , memoryMapRangePlaced{ memoryMapRangePlaced_ }
+ , memoryUnmapReserve{ memoryUnmapReserve_ }
{
}
@@ -72152,8 +72646,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMapMemoryPlacedPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minPlacedMemoryMapAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minPlacedMemoryMapAlignment( minPlacedMemoryMapAlignment_ )
+ : pNext{ pNext_ }
+ , minPlacedMemoryMapAlignment{ minPlacedMemoryMapAlignment_ }
{
}
@@ -72236,9 +72730,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapBudget_ = {},
std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapUsage_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , heapBudget( heapBudget_ )
- , heapUsage( heapUsage_ )
+ : pNext{ pNext_ }
+ , heapBudget{ heapBudget_ }
+ , heapUsage{ heapUsage_ }
{
}
@@ -72324,8 +72818,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryDecompression( memoryDecompression_ )
+ : pNext{ pNext_ }
+ , memoryDecompression{ memoryDecompression_ }
{
}
@@ -72423,9 +72917,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionPropertiesNV( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethods_ = {},
uint64_t maxDecompressionIndirectCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , decompressionMethods( decompressionMethods_ )
- , maxDecompressionIndirectCount( maxDecompressionIndirectCount_ )
+ : pNext{ pNext_ }
+ , decompressionMethods{ decompressionMethods_ }
+ , maxDecompressionIndirectCount{ maxDecompressionIndirectCount_ }
{
}
@@ -72510,8 +73004,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryPriority( memoryPriority_ )
+ : pNext{ pNext_ }
+ , memoryPriority{ memoryPriority_ }
{
}
@@ -72607,10 +73101,10 @@ namespace VULKAN_HPP_NAMESPACE
std::array<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const & memoryTypes_ = {},
uint32_t memoryHeapCount_ = {},
std::array<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const & memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT
- : memoryTypeCount( memoryTypeCount_ )
- , memoryTypes( memoryTypes_ )
- , memoryHeapCount( memoryHeapCount_ )
- , memoryHeaps( memoryHeaps_ )
+ : memoryTypeCount{ memoryTypeCount_ }
+ , memoryTypes{ memoryTypes_ }
+ , memoryHeapCount{ memoryHeapCount_ }
+ , memoryHeaps{ memoryHeaps_ }
{
}
@@ -72720,8 +73214,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryProperties( memoryProperties_ )
+ : pNext{ pNext_ }
+ , memoryProperties{ memoryProperties_ }
{
}
@@ -72809,12 +73303,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ = {},
VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , taskShader( taskShader_ )
- , meshShader( meshShader_ )
- , multiviewMeshShader( multiviewMeshShader_ )
- , primitiveFragmentShadingRateMeshShader( primitiveFragmentShadingRateMeshShader_ )
- , meshShaderQueries( meshShaderQueries_ )
+ : pNext{ pNext_ }
+ , taskShader{ taskShader_ }
+ , meshShader{ meshShader_ }
+ , multiviewMeshShader{ multiviewMeshShader_ }
+ , primitiveFragmentShadingRateMeshShader{ primitiveFragmentShadingRateMeshShader_ }
+ , meshShaderQueries{ meshShaderQueries_ }
{
}
@@ -72949,9 +73443,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , taskShader( taskShader_ )
- , meshShader( meshShader_ )
+ : pNext{ pNext_ }
+ , taskShader{ taskShader_ }
+ , meshShader{ meshShader_ }
{
}
@@ -73081,35 +73575,35 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput_ = {},
VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxTaskWorkGroupTotalCount( maxTaskWorkGroupTotalCount_ )
- , maxTaskWorkGroupCount( maxTaskWorkGroupCount_ )
- , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
- , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
- , maxTaskPayloadSize( maxTaskPayloadSize_ )
- , maxTaskSharedMemorySize( maxTaskSharedMemorySize_ )
- , maxTaskPayloadAndSharedMemorySize( maxTaskPayloadAndSharedMemorySize_ )
- , maxMeshWorkGroupTotalCount( maxMeshWorkGroupTotalCount_ )
- , maxMeshWorkGroupCount( maxMeshWorkGroupCount_ )
- , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
- , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
- , maxMeshSharedMemorySize( maxMeshSharedMemorySize_ )
- , maxMeshPayloadAndSharedMemorySize( maxMeshPayloadAndSharedMemorySize_ )
- , maxMeshOutputMemorySize( maxMeshOutputMemorySize_ )
- , maxMeshPayloadAndOutputMemorySize( maxMeshPayloadAndOutputMemorySize_ )
- , maxMeshOutputComponents( maxMeshOutputComponents_ )
- , maxMeshOutputVertices( maxMeshOutputVertices_ )
- , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
- , maxMeshOutputLayers( maxMeshOutputLayers_ )
- , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
- , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
- , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
- , maxPreferredTaskWorkGroupInvocations( maxPreferredTaskWorkGroupInvocations_ )
- , maxPreferredMeshWorkGroupInvocations( maxPreferredMeshWorkGroupInvocations_ )
- , prefersLocalInvocationVertexOutput( prefersLocalInvocationVertexOutput_ )
- , prefersLocalInvocationPrimitiveOutput( prefersLocalInvocationPrimitiveOutput_ )
- , prefersCompactVertexOutput( prefersCompactVertexOutput_ )
- , prefersCompactPrimitiveOutput( prefersCompactPrimitiveOutput_ )
+ : pNext{ pNext_ }
+ , maxTaskWorkGroupTotalCount{ maxTaskWorkGroupTotalCount_ }
+ , maxTaskWorkGroupCount{ maxTaskWorkGroupCount_ }
+ , maxTaskWorkGroupInvocations{ maxTaskWorkGroupInvocations_ }
+ , maxTaskWorkGroupSize{ maxTaskWorkGroupSize_ }
+ , maxTaskPayloadSize{ maxTaskPayloadSize_ }
+ , maxTaskSharedMemorySize{ maxTaskSharedMemorySize_ }
+ , maxTaskPayloadAndSharedMemorySize{ maxTaskPayloadAndSharedMemorySize_ }
+ , maxMeshWorkGroupTotalCount{ maxMeshWorkGroupTotalCount_ }
+ , maxMeshWorkGroupCount{ maxMeshWorkGroupCount_ }
+ , maxMeshWorkGroupInvocations{ maxMeshWorkGroupInvocations_ }
+ , maxMeshWorkGroupSize{ maxMeshWorkGroupSize_ }
+ , maxMeshSharedMemorySize{ maxMeshSharedMemorySize_ }
+ , maxMeshPayloadAndSharedMemorySize{ maxMeshPayloadAndSharedMemorySize_ }
+ , maxMeshOutputMemorySize{ maxMeshOutputMemorySize_ }
+ , maxMeshPayloadAndOutputMemorySize{ maxMeshPayloadAndOutputMemorySize_ }
+ , maxMeshOutputComponents{ maxMeshOutputComponents_ }
+ , maxMeshOutputVertices{ maxMeshOutputVertices_ }
+ , maxMeshOutputPrimitives{ maxMeshOutputPrimitives_ }
+ , maxMeshOutputLayers{ maxMeshOutputLayers_ }
+ , maxMeshMultiviewViewCount{ maxMeshMultiviewViewCount_ }
+ , meshOutputPerVertexGranularity{ meshOutputPerVertexGranularity_ }
+ , meshOutputPerPrimitiveGranularity{ meshOutputPerPrimitiveGranularity_ }
+ , maxPreferredTaskWorkGroupInvocations{ maxPreferredTaskWorkGroupInvocations_ }
+ , maxPreferredMeshWorkGroupInvocations{ maxPreferredMeshWorkGroupInvocations_ }
+ , prefersLocalInvocationVertexOutput{ prefersLocalInvocationVertexOutput_ }
+ , prefersLocalInvocationPrimitiveOutput{ prefersLocalInvocationPrimitiveOutput_ }
+ , prefersCompactVertexOutput{ prefersCompactVertexOutput_ }
+ , prefersCompactPrimitiveOutput{ prefersCompactPrimitiveOutput_ }
{
}
@@ -73304,20 +73798,20 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t meshOutputPerVertexGranularity_ = {},
uint32_t meshOutputPerPrimitiveGranularity_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxDrawMeshTasksCount( maxDrawMeshTasksCount_ )
- , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
- , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
- , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ )
- , maxTaskOutputCount( maxTaskOutputCount_ )
- , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
- , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
- , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ )
- , maxMeshOutputVertices( maxMeshOutputVertices_ )
- , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
- , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
- , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
- , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
+ : pNext{ pNext_ }
+ , maxDrawMeshTasksCount{ maxDrawMeshTasksCount_ }
+ , maxTaskWorkGroupInvocations{ maxTaskWorkGroupInvocations_ }
+ , maxTaskWorkGroupSize{ maxTaskWorkGroupSize_ }
+ , maxTaskTotalMemorySize{ maxTaskTotalMemorySize_ }
+ , maxTaskOutputCount{ maxTaskOutputCount_ }
+ , maxMeshWorkGroupInvocations{ maxMeshWorkGroupInvocations_ }
+ , maxMeshWorkGroupSize{ maxMeshWorkGroupSize_ }
+ , maxMeshTotalMemorySize{ maxMeshTotalMemorySize_ }
+ , maxMeshOutputVertices{ maxMeshOutputVertices_ }
+ , maxMeshOutputPrimitives{ maxMeshOutputPrimitives_ }
+ , maxMeshMultiviewViewCount{ maxMeshMultiviewViewCount_ }
+ , meshOutputPerVertexGranularity{ meshOutputPerVertexGranularity_ }
+ , meshOutputPerPrimitiveGranularity{ meshOutputPerPrimitiveGranularity_ }
{
}
@@ -73445,8 +73939,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multiDraw( multiDraw_ )
+ : pNext{ pNext_ }
+ , multiDraw{ multiDraw_ }
{
}
@@ -73541,8 +74035,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( uint32_t maxMultiDrawCount_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxMultiDrawCount( maxMultiDrawCount_ )
+ : pNext{ pNext_ }
+ , maxMultiDrawCount{ maxMultiDrawCount_ }
{
}
@@ -73624,8 +74118,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multisampledRenderToSingleSampled( multisampledRenderToSingleSampled_ )
+ : pNext{ pNext_ }
+ , multisampledRenderToSingleSampled{ multisampledRenderToSingleSampled_ }
{
}
@@ -73728,10 +74222,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multiview( multiview_ )
- , multiviewGeometryShader( multiviewGeometryShader_ )
- , multiviewTessellationShader( multiviewTessellationShader_ )
+ : pNext{ pNext_ }
+ , multiview{ multiview_ }
+ , multiviewGeometryShader{ multiviewGeometryShader_ }
+ , multiviewTessellationShader{ multiviewTessellationShader_ }
{
}
@@ -73850,8 +74344,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , perViewPositionAllComponents( perViewPositionAllComponents_ )
+ : pNext{ pNext_ }
+ , perViewPositionAllComponents{ perViewPositionAllComponents_ }
{
}
@@ -73935,8 +74429,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multiviewPerViewRenderAreas( multiviewPerViewRenderAreas_ )
+ : pNext{ pNext_ }
+ , multiviewPerViewRenderAreas{ multiviewPerViewRenderAreas_ }
{
}
@@ -74035,8 +74529,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , multiviewPerViewViewports( multiviewPerViewViewports_ )
+ : pNext{ pNext_ }
+ , multiviewPerViewViewports{ multiviewPerViewViewports_ }
{
}
@@ -74136,9 +74630,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {},
uint32_t maxMultiviewInstanceIndex_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxMultiviewViewCount( maxMultiviewViewCount_ )
- , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
+ : pNext{ pNext_ }
+ , maxMultiviewViewCount{ maxMultiviewViewCount_ }
+ , maxMultiviewInstanceIndex{ maxMultiviewInstanceIndex_ }
{
}
@@ -74224,8 +74718,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , mutableDescriptorType( mutableDescriptorType_ )
+ : pNext{ pNext_ }
+ , mutableDescriptorType{ mutableDescriptorType_ }
{
}
@@ -74327,10 +74821,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ = {},
VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , nestedCommandBuffer( nestedCommandBuffer_ )
- , nestedCommandBufferRendering( nestedCommandBufferRendering_ )
- , nestedCommandBufferSimultaneousUse( nestedCommandBufferSimultaneousUse_ )
+ : pNext{ pNext_ }
+ , nestedCommandBuffer{ nestedCommandBuffer_ }
+ , nestedCommandBufferRendering{ nestedCommandBufferRendering_ }
+ , nestedCommandBufferSimultaneousUse{ nestedCommandBufferSimultaneousUse_ }
{
}
@@ -74449,8 +74943,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT( uint32_t maxCommandBufferNestingLevel_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxCommandBufferNestingLevel( maxCommandBufferNestingLevel_ )
+ : pNext{ pNext_ }
+ , maxCommandBufferNestingLevel{ maxCommandBufferNestingLevel_ }
{
}
@@ -74548,8 +75042,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , nonSeamlessCubeMap( nonSeamlessCubeMap_ )
+ : pNext{ pNext_ }
+ , nonSeamlessCubeMap{ nonSeamlessCubeMap_ }
{
}
@@ -74648,10 +75142,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ = {},
VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , micromap( micromap_ )
- , micromapCaptureReplay( micromapCaptureReplay_ )
- , micromapHostCommands( micromapHostCommands_ )
+ : pNext{ pNext_ }
+ , micromap{ micromap_ }
+ , micromapCaptureReplay{ micromapCaptureReplay_ }
+ , micromapHostCommands{ micromapHostCommands_ }
{
}
@@ -74769,9 +75263,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapPropertiesEXT( uint32_t maxOpacity2StateSubdivisionLevel_ = {},
uint32_t maxOpacity4StateSubdivisionLevel_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxOpacity2StateSubdivisionLevel( maxOpacity2StateSubdivisionLevel_ )
- , maxOpacity4StateSubdivisionLevel( maxOpacity4StateSubdivisionLevel_ )
+ : pNext{ pNext_ }
+ , maxOpacity2StateSubdivisionLevel{ maxOpacity2StateSubdivisionLevel_ }
+ , maxOpacity4StateSubdivisionLevel{ maxOpacity4StateSubdivisionLevel_ }
{
}
@@ -74854,8 +75348,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 opticalFlow_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , opticalFlow( opticalFlow_ )
+ : pNext{ pNext_ }
+ , opticalFlow{ opticalFlow_ }
{
}
@@ -74961,18 +75455,18 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxHeight_ = {},
uint32_t maxNumRegionsOfInterest_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportedOutputGridSizes( supportedOutputGridSizes_ )
- , supportedHintGridSizes( supportedHintGridSizes_ )
- , hintSupported( hintSupported_ )
- , costSupported( costSupported_ )
- , bidirectionalFlowSupported( bidirectionalFlowSupported_ )
- , globalFlowSupported( globalFlowSupported_ )
- , minWidth( minWidth_ )
- , minHeight( minHeight_ )
- , maxWidth( maxWidth_ )
- , maxHeight( maxHeight_ )
- , maxNumRegionsOfInterest( maxNumRegionsOfInterest_ )
+ : pNext{ pNext_ }
+ , supportedOutputGridSizes{ supportedOutputGridSizes_ }
+ , supportedHintGridSizes{ supportedHintGridSizes_ }
+ , hintSupported{ hintSupported_ }
+ , costSupported{ costSupported_ }
+ , bidirectionalFlowSupported{ bidirectionalFlowSupported_ }
+ , globalFlowSupported{ globalFlowSupported_ }
+ , minWidth{ minWidth_ }
+ , minHeight{ minHeight_ }
+ , maxWidth{ maxWidth_ }
+ , maxHeight{ maxHeight_ }
+ , maxNumRegionsOfInterest{ maxNumRegionsOfInterest_ }
{
}
@@ -75092,11 +75586,11 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(
uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pciDomain( pciDomain_ )
- , pciBus( pciBus_ )
- , pciDevice( pciDevice_ )
- , pciFunction( pciFunction_ )
+ : pNext{ pNext_ }
+ , pciDomain{ pciDomain_ }
+ , pciBus{ pciBus_ }
+ , pciDevice{ pciDevice_ }
+ , pciFunction{ pciFunction_ }
{
}
@@ -75182,8 +75676,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pageableDeviceLocalMemory( pageableDeviceLocalMemory_ )
+ : pNext{ pNext_ }
+ , pageableDeviceLocalMemory{ pageableDeviceLocalMemory_ }
{
}
@@ -75283,9 +75777,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDevicePerStageDescriptorSetFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 perStageDescriptorSet_ = {},
VULKAN_HPP_NAMESPACE::Bool32 dynamicPipelineLayout_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , perStageDescriptorSet( perStageDescriptorSet_ )
- , dynamicPipelineLayout( dynamicPipelineLayout_ )
+ : pNext{ pNext_ }
+ , perStageDescriptorSet{ perStageDescriptorSet_ }
+ , dynamicPipelineLayout{ dynamicPipelineLayout_ }
{
}
@@ -75393,9 +75887,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {},
VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , performanceCounterQueryPools( performanceCounterQueryPools_ )
- , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
+ : pNext{ pNext_ }
+ , performanceCounterQueryPools{ performanceCounterQueryPools_ }
+ , performanceCounterMultipleQueryPools{ performanceCounterMultipleQueryPools_ }
{
}
@@ -75501,8 +75995,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
+ : pNext{ pNext_ }
+ , allowCommandBufferQueryCopies{ allowCommandBufferQueryCopies_ }
{
}
@@ -75584,8 +76078,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
+ : pNext{ pNext_ }
+ , pipelineCreationCacheControl{ pipelineCreationCacheControl_ }
{
}
@@ -75686,8 +76180,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineExecutableInfo( pipelineExecutableInfo_ )
+ : pNext{ pNext_ }
+ , pipelineExecutableInfo{ pipelineExecutableInfo_ }
{
}
@@ -75786,8 +76280,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineLibraryGroupHandles( pipelineLibraryGroupHandles_ )
+ : pNext{ pNext_ }
+ , pipelineLibraryGroupHandles{ pipelineLibraryGroupHandles_ }
{
}
@@ -75886,8 +76380,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelinePropertiesIdentifier( pipelinePropertiesIdentifier_ )
+ : pNext{ pNext_ }
+ , pipelinePropertiesIdentifier{ pipelinePropertiesIdentifier_ }
{
}
@@ -75984,8 +76478,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineProtectedAccessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineProtectedAccess( pipelineProtectedAccess_ )
+ : pNext{ pNext_ }
+ , pipelineProtectedAccess{ pipelineProtectedAccess_ }
{
}
@@ -76083,8 +76577,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineRobustness( pipelineRobustness_ )
+ : pNext{ pNext_ }
+ , pipelineRobustness{ pipelineRobustness_ }
{
}
@@ -76189,11 +76683,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages_ =
VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , defaultRobustnessStorageBuffers( defaultRobustnessStorageBuffers_ )
- , defaultRobustnessUniformBuffers( defaultRobustnessUniformBuffers_ )
- , defaultRobustnessVertexInputs( defaultRobustnessVertexInputs_ )
- , defaultRobustnessImages( defaultRobustnessImages_ )
+ : pNext{ pNext_ }
+ , defaultRobustnessStorageBuffers{ defaultRobustnessStorageBuffers_ }
+ , defaultRobustnessUniformBuffers{ defaultRobustnessUniformBuffers_ }
+ , defaultRobustnessVertexInputs{ defaultRobustnessVertexInputs_ }
+ , defaultRobustnessImages{ defaultRobustnessImages_ }
{
}
@@ -76290,8 +76784,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(
VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pointClippingBehavior( pointClippingBehavior_ )
+ : pNext{ pNext_ }
+ , pointClippingBehavior{ pointClippingBehavior_ }
{
}
@@ -76390,22 +76884,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {},
VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ )
- , events( events_ )
- , imageViewFormatReinterpretation( imageViewFormatReinterpretation_ )
- , imageViewFormatSwizzle( imageViewFormatSwizzle_ )
- , imageView2DOn3DImage( imageView2DOn3DImage_ )
- , multisampleArrayImage( multisampleArrayImage_ )
- , mutableComparisonSamplers( mutableComparisonSamplers_ )
- , pointPolygons( pointPolygons_ )
- , samplerMipLodBias( samplerMipLodBias_ )
- , separateStencilMaskRef( separateStencilMaskRef_ )
- , shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ )
- , tessellationIsolines( tessellationIsolines_ )
- , tessellationPointMode( tessellationPointMode_ )
- , triangleFans( triangleFans_ )
- , vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ )
+ : pNext{ pNext_ }
+ , constantAlphaColorBlendFactors{ constantAlphaColorBlendFactors_ }
+ , events{ events_ }
+ , imageViewFormatReinterpretation{ imageViewFormatReinterpretation_ }
+ , imageViewFormatSwizzle{ imageViewFormatSwizzle_ }
+ , imageView2DOn3DImage{ imageView2DOn3DImage_ }
+ , multisampleArrayImage{ multisampleArrayImage_ }
+ , mutableComparisonSamplers{ mutableComparisonSamplers_ }
+ , pointPolygons{ pointPolygons_ }
+ , samplerMipLodBias{ samplerMipLodBias_ }
+ , separateStencilMaskRef{ separateStencilMaskRef_ }
+ , shaderSampleRateInterpolationFunctions{ shaderSampleRateInterpolationFunctions_ }
+ , tessellationIsolines{ tessellationIsolines_ }
+ , tessellationPointMode{ tessellationPointMode_ }
+ , triangleFans{ triangleFans_ }
+ , vertexAttributeAccessBeyondStride{ vertexAttributeAccessBeyondStride_ }
{
}
@@ -76653,8 +77147,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( uint32_t minVertexInputBindingStrideAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
+ : pNext{ pNext_ }
+ , minVertexInputBindingStrideAlignment{ minVertexInputBindingStrideAlignment_ }
{
}
@@ -76752,8 +77246,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePresentBarrierFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrier_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentBarrier( presentBarrier_ )
+ : pNext{ pNext_ }
+ , presentBarrier{ presentBarrier_ }
{
}
@@ -76848,8 +77342,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentId_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentId( presentId_ )
+ : pNext{ pNext_ }
+ , presentId{ presentId_ }
{
}
@@ -76944,8 +77438,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentWait( presentWait_ )
+ : pNext{ pNext_ }
+ , presentWait{ presentWait_ }
{
}
@@ -77042,9 +77536,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ = {},
VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , primitiveTopologyListRestart( primitiveTopologyListRestart_ )
- , primitiveTopologyPatchListRestart( primitiveTopologyPatchListRestart_ )
+ : pNext{ pNext_ }
+ , primitiveTopologyListRestart{ primitiveTopologyListRestart_ }
+ , primitiveTopologyPatchListRestart{ primitiveTopologyPatchListRestart_ }
{
}
@@ -77154,10 +77648,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ = {},
VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , primitivesGeneratedQuery( primitivesGeneratedQuery_ )
- , primitivesGeneratedQueryWithRasterizerDiscard( primitivesGeneratedQueryWithRasterizerDiscard_ )
- , primitivesGeneratedQueryWithNonZeroStreams( primitivesGeneratedQueryWithNonZeroStreams_ )
+ : pNext{ pNext_ }
+ , primitivesGeneratedQuery{ primitivesGeneratedQuery_ }
+ , primitivesGeneratedQueryWithRasterizerDiscard{ primitivesGeneratedQueryWithRasterizerDiscard_ }
+ , primitivesGeneratedQueryWithNonZeroStreams{ primitivesGeneratedQueryWithNonZeroStreams_ }
{
}
@@ -77277,8 +77771,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , privateData( privateData_ )
+ : pNext{ pNext_ }
+ , privateData{ privateData_ }
{
}
@@ -77376,11 +77870,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {},
VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {},
VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT
- : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ )
- , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ )
- , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ )
- , residencyAlignedMipSize( residencyAlignedMipSize_ )
- , residencyNonResidentStrict( residencyNonResidentStrict_ )
+ : residencyStandard2DBlockShape{ residencyStandard2DBlockShape_ }
+ , residencyStandard2DMultisampleBlockShape{ residencyStandard2DMultisampleBlockShape_ }
+ , residencyStandard3DBlockShape{ residencyStandard3DBlockShape_ }
+ , residencyAlignedMipSize{ residencyAlignedMipSize_ }
+ , residencyNonResidentStrict{ residencyNonResidentStrict_ }
{
}
@@ -77473,15 +77967,15 @@ namespace VULKAN_HPP_NAMESPACE
std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {},
VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {},
VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT
- : apiVersion( apiVersion_ )
- , driverVersion( driverVersion_ )
- , vendorID( vendorID_ )
- , deviceID( deviceID_ )
- , deviceType( deviceType_ )
- , deviceName( deviceName_ )
- , pipelineCacheUUID( pipelineCacheUUID_ )
- , limits( limits_ )
- , sparseProperties( sparseProperties_ )
+ : apiVersion{ apiVersion_ }
+ , driverVersion{ driverVersion_ }
+ , vendorID{ vendorID_ }
+ , deviceID{ deviceID_ }
+ , deviceType{ deviceType_ }
+ , deviceName{ deviceName_ }
+ , pipelineCacheUUID{ pipelineCacheUUID_ }
+ , limits{ limits_ }
+ , sparseProperties{ sparseProperties_ }
{
}
@@ -77619,8 +78113,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , properties( properties_ )
+ : pNext{ pNext_ }
+ , properties{ properties_ }
{
}
@@ -77704,8 +78198,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , protectedMemory( protectedMemory_ )
+ : pNext{ pNext_ }
+ , protectedMemory{ protectedMemory_ }
{
}
@@ -77801,8 +78295,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , protectedNoFault( protectedNoFault_ )
+ : pNext{ pNext_ }
+ , protectedNoFault{ protectedNoFault_ }
{
}
@@ -77885,9 +78379,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ = {},
VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , provokingVertexLast( provokingVertexLast_ )
- , transformFeedbackPreservesProvokingVertex( transformFeedbackPreservesProvokingVertex_ )
+ : pNext{ pNext_ }
+ , provokingVertexLast{ provokingVertexLast_ }
+ , transformFeedbackPreservesProvokingVertex{ transformFeedbackPreservesProvokingVertex_ }
{
}
@@ -77994,9 +78488,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline_ = {},
VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , provokingVertexModePerPipeline( provokingVertexModePerPipeline_ )
- , transformFeedbackPreservesTriangleFanProvokingVertex( transformFeedbackPreservesTriangleFanProvokingVertex_ )
+ : pNext{ pNext_ }
+ , provokingVertexModePerPipeline{ provokingVertexModePerPipeline_ }
+ , transformFeedbackPreservesTriangleFanProvokingVertex{ transformFeedbackPreservesTriangleFanProvokingVertex_ }
{
}
@@ -78079,8 +78573,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxPushDescriptors( maxPushDescriptors_ )
+ : pNext{ pNext_ }
+ , maxPushDescriptors{ maxPushDescriptors_ }
{
}
@@ -78162,8 +78656,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , formatRgba10x6WithoutYCbCrSampler( formatRgba10x6WithoutYCbCrSampler_ )
+ : pNext{ pNext_ }
+ , formatRgba10x6WithoutYCbCrSampler{ formatRgba10x6WithoutYCbCrSampler_ }
{
}
@@ -78263,10 +78757,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ = {},
VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rasterizationOrderColorAttachmentAccess( rasterizationOrderColorAttachmentAccess_ )
- , rasterizationOrderDepthAttachmentAccess( rasterizationOrderDepthAttachmentAccess_ )
- , rasterizationOrderStencilAttachmentAccess( rasterizationOrderStencilAttachmentAccess_ )
+ : pNext{ pNext_ }
+ , rasterizationOrderColorAttachmentAccess{ rasterizationOrderColorAttachmentAccess_ }
+ , rasterizationOrderDepthAttachmentAccess{ rasterizationOrderDepthAttachmentAccess_ }
+ , rasterizationOrderStencilAttachmentAccess{ rasterizationOrderStencilAttachmentAccess_ }
{
}
@@ -78392,8 +78886,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRawAccessChainsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderRawAccessChains_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderRawAccessChains( shaderRawAccessChains_ )
+ : pNext{ pNext_ }
+ , shaderRawAccessChains{ shaderRawAccessChains_ }
{
}
@@ -78489,8 +78983,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayQuery( rayQuery_ )
+ : pNext{ pNext_ }
+ , rayQuery{ rayQuery_ }
{
}
@@ -78586,8 +79080,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingInvocationReorder( rayTracingInvocationReorder_ )
+ : pNext{ pNext_ }
+ , rayTracingInvocationReorder{ rayTracingInvocationReorder_ }
{
}
@@ -78688,8 +79182,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint_ =
VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV::eNone,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingInvocationReorderReorderingHint( rayTracingInvocationReorderReorderingHint_ )
+ : pNext{ pNext_ }
+ , rayTracingInvocationReorderReorderingHint{ rayTracingInvocationReorderReorderingHint_ }
{
}
@@ -78775,9 +79269,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ = {},
VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingMaintenance1( rayTracingMaintenance1_ )
- , rayTracingPipelineTraceRaysIndirect2( rayTracingPipelineTraceRaysIndirect2_ )
+ : pNext{ pNext_ }
+ , rayTracingMaintenance1{ rayTracingMaintenance1_ }
+ , rayTracingPipelineTraceRaysIndirect2{ rayTracingPipelineTraceRaysIndirect2_ }
{
}
@@ -78885,9 +79379,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ = {},
VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingMotionBlur( rayTracingMotionBlur_ )
- , rayTracingMotionBlurPipelineTraceRaysIndirect( rayTracingMotionBlurPipelineTraceRaysIndirect_ )
+ : pNext{ pNext_ }
+ , rayTracingMotionBlur{ rayTracingMotionBlur_ }
+ , rayTracingMotionBlurPipelineTraceRaysIndirect{ rayTracingMotionBlurPipelineTraceRaysIndirect_ }
{
}
@@ -78997,12 +79491,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {},
VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingPipeline( rayTracingPipeline_ )
- , rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ )
- , rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ )
- , rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ )
- , rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ )
+ : pNext{ pNext_ }
+ , rayTracingPipeline{ rayTracingPipeline_ }
+ , rayTracingPipelineShaderGroupHandleCaptureReplay{ rayTracingPipelineShaderGroupHandleCaptureReplay_ }
+ , rayTracingPipelineShaderGroupHandleCaptureReplayMixed{ rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ }
+ , rayTracingPipelineTraceRaysIndirect{ rayTracingPipelineTraceRaysIndirect_ }
+ , rayTraversalPrimitiveCulling{ rayTraversalPrimitiveCulling_ }
{
}
@@ -79154,15 +79648,15 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t shaderGroupHandleAlignment_ = {},
uint32_t maxRayHitAttributeSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderGroupHandleSize( shaderGroupHandleSize_ )
- , maxRayRecursionDepth( maxRayRecursionDepth_ )
- , maxShaderGroupStride( maxShaderGroupStride_ )
- , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
- , shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
- , maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ )
- , shaderGroupHandleAlignment( shaderGroupHandleAlignment_ )
- , maxRayHitAttributeSize( maxRayHitAttributeSize_ )
+ : pNext{ pNext_ }
+ , shaderGroupHandleSize{ shaderGroupHandleSize_ }
+ , maxRayRecursionDepth{ maxRayRecursionDepth_ }
+ , maxShaderGroupStride{ maxShaderGroupStride_ }
+ , shaderGroupBaseAlignment{ shaderGroupBaseAlignment_ }
+ , shaderGroupHandleCaptureReplaySize{ shaderGroupHandleCaptureReplaySize_ }
+ , maxRayDispatchInvocationCount{ maxRayDispatchInvocationCount_ }
+ , shaderGroupHandleAlignment{ shaderGroupHandleAlignment_ }
+ , maxRayHitAttributeSize{ maxRayHitAttributeSize_ }
{
}
@@ -79274,8 +79768,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingPositionFetch( rayTracingPositionFetch_ )
+ : pNext{ pNext_ }
+ , rayTracingPositionFetch{ rayTracingPositionFetch_ }
{
}
@@ -79380,15 +79874,15 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t maxTriangleCount_ = {},
uint32_t maxDescriptorSetAccelerationStructures_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderGroupHandleSize( shaderGroupHandleSize_ )
- , maxRecursionDepth( maxRecursionDepth_ )
- , maxShaderGroupStride( maxShaderGroupStride_ )
- , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
- , maxGeometryCount( maxGeometryCount_ )
- , maxInstanceCount( maxInstanceCount_ )
- , maxTriangleCount( maxTriangleCount_ )
- , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
+ : pNext{ pNext_ }
+ , shaderGroupHandleSize{ shaderGroupHandleSize_ }
+ , maxRecursionDepth{ maxRecursionDepth_ }
+ , maxShaderGroupStride{ maxShaderGroupStride_ }
+ , shaderGroupBaseAlignment{ shaderGroupBaseAlignment_ }
+ , maxGeometryCount{ maxGeometryCount_ }
+ , maxInstanceCount{ maxInstanceCount_ }
+ , maxTriangleCount{ maxTriangleCount_ }
+ , maxDescriptorSetAccelerationStructures{ maxDescriptorSetAccelerationStructures_ }
{
}
@@ -79499,8 +79993,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingValidationFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingValidation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rayTracingValidation( rayTracingValidation_ )
+ : pNext{ pNext_ }
+ , rayTracingValidation{ rayTracingValidation_ }
{
}
@@ -79597,8 +80091,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRelaxedLineRasterizationFeaturesIMG( VULKAN_HPP_NAMESPACE::Bool32 relaxedLineRasterization_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , relaxedLineRasterization( relaxedLineRasterization_ )
+ : pNext{ pNext_ }
+ , relaxedLineRasterization{ relaxedLineRasterization_ }
{
}
@@ -79697,8 +80191,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 renderPassStriped_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , renderPassStriped( renderPassStriped_ )
+ : pNext{ pNext_ }
+ , renderPassStriped{ renderPassStriped_ }
{
}
@@ -79796,9 +80290,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceRenderPassStripedPropertiesARM( VULKAN_HPP_NAMESPACE::Extent2D renderPassStripeGranularity_ = {},
uint32_t maxRenderPassStripes_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , renderPassStripeGranularity( renderPassStripeGranularity_ )
- , maxRenderPassStripes( maxRenderPassStripes_ )
+ : pNext{ pNext_ }
+ , renderPassStripeGranularity{ renderPassStripeGranularity_ }
+ , maxRenderPassStripes{ maxRenderPassStripes_ }
{
}
@@ -79882,8 +80376,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , representativeFragmentTest( representativeFragmentTest_ )
+ : pNext{ pNext_ }
+ , representativeFragmentTest{ representativeFragmentTest_ }
{
}
@@ -79984,10 +80478,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {},
VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , robustBufferAccess2( robustBufferAccess2_ )
- , robustImageAccess2( robustImageAccess2_ )
- , nullDescriptor( nullDescriptor_ )
+ : pNext{ pNext_ }
+ , robustBufferAccess2{ robustBufferAccess2_ }
+ , robustImageAccess2{ robustImageAccess2_ }
+ , nullDescriptor{ nullDescriptor_ }
{
}
@@ -80104,9 +80598,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ )
- , robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
+ : pNext{ pNext_ }
+ , robustStorageBufferAccessSizeAlignment{ robustStorageBufferAccessSizeAlignment_ }
+ , robustUniformBufferAccessSizeAlignment{ robustUniformBufferAccessSizeAlignment_ }
{
}
@@ -80194,12 +80688,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t sampleLocationSubPixelBits_ = {},
VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampleLocationSampleCounts( sampleLocationSampleCounts_ )
- , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
- , sampleLocationCoordinateRange( sampleLocationCoordinateRange_ )
- , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ )
- , variableSampleLocations( variableSampleLocations_ )
+ : pNext{ pNext_ }
+ , sampleLocationSampleCounts{ sampleLocationSampleCounts_ }
+ , maxSampleLocationGridSize{ maxSampleLocationGridSize_ }
+ , sampleLocationCoordinateRange{ sampleLocationCoordinateRange_ }
+ , sampleLocationSubPixelBits{ sampleLocationSubPixelBits_ }
+ , variableSampleLocations{ variableSampleLocations_ }
{
}
@@ -80300,9 +80794,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
- , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
+ : pNext{ pNext_ }
+ , filterMinmaxSingleComponentFormats{ filterMinmaxSingleComponentFormats_ }
+ , filterMinmaxImageComponentMapping{ filterMinmaxImageComponentMapping_ }
{
}
@@ -80388,8 +80882,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , samplerYcbcrConversion( samplerYcbcrConversion_ )
+ : pNext{ pNext_ }
+ , samplerYcbcrConversion{ samplerYcbcrConversion_ }
{
}
@@ -80488,8 +80982,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , scalarBlockLayout( scalarBlockLayout_ )
+ : pNext{ pNext_ }
+ , scalarBlockLayout{ scalarBlockLayout_ }
{
}
@@ -80588,8 +81082,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSchedulingControlsFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 schedulingControls_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , schedulingControls( schedulingControls_ )
+ : pNext{ pNext_ }
+ , schedulingControls{ schedulingControls_ }
{
}
@@ -80687,8 +81181,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
PhysicalDeviceSchedulingControlsPropertiesARM( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , schedulingControlsFlags( schedulingControlsFlags_ )
+ : pNext{ pNext_ }
+ , schedulingControlsFlags{ schedulingControlsFlags_ }
{
}
@@ -80786,8 +81280,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
+ : pNext{ pNext_ }
+ , separateDepthStencilLayouts{ separateDepthStencilLayouts_ }
{
}
@@ -80888,8 +81382,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16VectorAtomics_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderFloat16VectorAtomics( shaderFloat16VectorAtomics_ )
+ : pNext{ pNext_ }
+ , shaderFloat16VectorAtomics{ shaderFloat16VectorAtomics_ }
{
}
@@ -80999,19 +81493,19 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ = {},
VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderBufferFloat16Atomics( shaderBufferFloat16Atomics_ )
- , shaderBufferFloat16AtomicAdd( shaderBufferFloat16AtomicAdd_ )
- , shaderBufferFloat16AtomicMinMax( shaderBufferFloat16AtomicMinMax_ )
- , shaderBufferFloat32AtomicMinMax( shaderBufferFloat32AtomicMinMax_ )
- , shaderBufferFloat64AtomicMinMax( shaderBufferFloat64AtomicMinMax_ )
- , shaderSharedFloat16Atomics( shaderSharedFloat16Atomics_ )
- , shaderSharedFloat16AtomicAdd( shaderSharedFloat16AtomicAdd_ )
- , shaderSharedFloat16AtomicMinMax( shaderSharedFloat16AtomicMinMax_ )
- , shaderSharedFloat32AtomicMinMax( shaderSharedFloat32AtomicMinMax_ )
- , shaderSharedFloat64AtomicMinMax( shaderSharedFloat64AtomicMinMax_ )
- , shaderImageFloat32AtomicMinMax( shaderImageFloat32AtomicMinMax_ )
- , sparseImageFloat32AtomicMinMax( sparseImageFloat32AtomicMinMax_ )
+ : pNext{ pNext_ }
+ , shaderBufferFloat16Atomics{ shaderBufferFloat16Atomics_ }
+ , shaderBufferFloat16AtomicAdd{ shaderBufferFloat16AtomicAdd_ }
+ , shaderBufferFloat16AtomicMinMax{ shaderBufferFloat16AtomicMinMax_ }
+ , shaderBufferFloat32AtomicMinMax{ shaderBufferFloat32AtomicMinMax_ }
+ , shaderBufferFloat64AtomicMinMax{ shaderBufferFloat64AtomicMinMax_ }
+ , shaderSharedFloat16Atomics{ shaderSharedFloat16Atomics_ }
+ , shaderSharedFloat16AtomicAdd{ shaderSharedFloat16AtomicAdd_ }
+ , shaderSharedFloat16AtomicMinMax{ shaderSharedFloat16AtomicMinMax_ }
+ , shaderSharedFloat32AtomicMinMax{ shaderSharedFloat32AtomicMinMax_ }
+ , shaderSharedFloat64AtomicMinMax{ shaderSharedFloat64AtomicMinMax_ }
+ , shaderImageFloat32AtomicMinMax{ shaderImageFloat32AtomicMinMax_ }
+ , sparseImageFloat32AtomicMinMax{ sparseImageFloat32AtomicMinMax_ }
{
}
@@ -81243,19 +81737,19 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {},
VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ )
- , shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ )
- , shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ )
- , shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ )
- , shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ )
- , shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ )
- , shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ )
- , shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ )
- , shaderImageFloat32Atomics( shaderImageFloat32Atomics_ )
- , shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ )
- , sparseImageFloat32Atomics( sparseImageFloat32Atomics_ )
- , sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
+ : pNext{ pNext_ }
+ , shaderBufferFloat32Atomics{ shaderBufferFloat32Atomics_ }
+ , shaderBufferFloat32AtomicAdd{ shaderBufferFloat32AtomicAdd_ }
+ , shaderBufferFloat64Atomics{ shaderBufferFloat64Atomics_ }
+ , shaderBufferFloat64AtomicAdd{ shaderBufferFloat64AtomicAdd_ }
+ , shaderSharedFloat32Atomics{ shaderSharedFloat32Atomics_ }
+ , shaderSharedFloat32AtomicAdd{ shaderSharedFloat32AtomicAdd_ }
+ , shaderSharedFloat64Atomics{ shaderSharedFloat64Atomics_ }
+ , shaderSharedFloat64AtomicAdd{ shaderSharedFloat64AtomicAdd_ }
+ , shaderImageFloat32Atomics{ shaderImageFloat32Atomics_ }
+ , shaderImageFloat32AtomicAdd{ shaderImageFloat32AtomicAdd_ }
+ , sparseImageFloat32Atomics{ sparseImageFloat32Atomics_ }
+ , sparseImageFloat32AtomicAdd{ sparseImageFloat32AtomicAdd_ }
{
}
@@ -81473,9 +81967,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
- , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
+ : pNext{ pNext_ }
+ , shaderBufferInt64Atomics{ shaderBufferInt64Atomics_ }
+ , shaderSharedInt64Atomics{ shaderSharedInt64Atomics_ }
{
}
@@ -81584,9 +82078,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSubgroupClock( shaderSubgroupClock_ )
- , shaderDeviceClock( shaderDeviceClock_ )
+ : pNext{ pNext_ }
+ , shaderSubgroupClock{ shaderSubgroupClock_ }
+ , shaderDeviceClock{ shaderDeviceClock_ }
{
}
@@ -81691,8 +82185,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderCoreBuiltins( shaderCoreBuiltins_ )
+ : pNext{ pNext_ }
+ , shaderCoreBuiltins{ shaderCoreBuiltins_ }
{
}
@@ -81791,10 +82285,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t shaderCoreCount_ = {},
uint32_t shaderWarpsPerCore_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderCoreMask( shaderCoreMask_ )
- , shaderCoreCount( shaderCoreCount_ )
- , shaderWarpsPerCore( shaderWarpsPerCore_ )
+ : pNext{ pNext_ }
+ , shaderCoreMask{ shaderCoreMask_ }
+ , shaderCoreCount{ shaderCoreCount_ }
+ , shaderWarpsPerCore{ shaderWarpsPerCore_ }
{
}
@@ -81881,9 +82375,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {},
uint32_t activeComputeUnitCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderCoreFeatures( shaderCoreFeatures_ )
- , activeComputeUnitCount( activeComputeUnitCount_ )
+ : pNext{ pNext_ }
+ , shaderCoreFeatures{ shaderCoreFeatures_ }
+ , activeComputeUnitCount{ activeComputeUnitCount_ }
{
}
@@ -81980,21 +82474,21 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxVgprAllocation_ = {},
uint32_t vgprAllocationGranularity_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderEngineCount( shaderEngineCount_ )
- , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ )
- , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ )
- , simdPerComputeUnit( simdPerComputeUnit_ )
- , wavefrontsPerSimd( wavefrontsPerSimd_ )
- , wavefrontSize( wavefrontSize_ )
- , sgprsPerSimd( sgprsPerSimd_ )
- , minSgprAllocation( minSgprAllocation_ )
- , maxSgprAllocation( maxSgprAllocation_ )
- , sgprAllocationGranularity( sgprAllocationGranularity_ )
- , vgprsPerSimd( vgprsPerSimd_ )
- , minVgprAllocation( minVgprAllocation_ )
- , maxVgprAllocation( maxVgprAllocation_ )
- , vgprAllocationGranularity( vgprAllocationGranularity_ )
+ : pNext{ pNext_ }
+ , shaderEngineCount{ shaderEngineCount_ }
+ , shaderArraysPerEngineCount{ shaderArraysPerEngineCount_ }
+ , computeUnitsPerShaderArray{ computeUnitsPerShaderArray_ }
+ , simdPerComputeUnit{ simdPerComputeUnit_ }
+ , wavefrontsPerSimd{ wavefrontsPerSimd_ }
+ , wavefrontSize{ wavefrontSize_ }
+ , sgprsPerSimd{ sgprsPerSimd_ }
+ , minSgprAllocation{ minSgprAllocation_ }
+ , maxSgprAllocation{ maxSgprAllocation_ }
+ , sgprAllocationGranularity{ sgprAllocationGranularity_ }
+ , vgprsPerSimd{ vgprsPerSimd_ }
+ , minVgprAllocation{ minVgprAllocation_ }
+ , maxVgprAllocation{ maxVgprAllocation_ }
+ , vgprAllocationGranularity{ vgprAllocationGranularity_ }
{
}
@@ -82127,10 +82621,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t texelRate_ = {},
uint32_t fmaRate_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pixelRate( pixelRate_ )
- , texelRate( texelRate_ )
- , fmaRate( fmaRate_ )
+ : pNext{ pNext_ }
+ , pixelRate{ pixelRate_ }
+ , texelRate{ texelRate_ }
+ , fmaRate{ fmaRate_ }
{
}
@@ -82214,8 +82708,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
+ : pNext{ pNext_ }
+ , shaderDemoteToHelperInvocation{ shaderDemoteToHelperInvocation_ }
{
}
@@ -82316,8 +82810,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderDrawParameters( shaderDrawParameters_ )
+ : pNext{ pNext_ }
+ , shaderDrawParameters{ shaderDrawParameters_ }
{
}
@@ -82416,8 +82910,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderEarlyAndLateFragmentTests( shaderEarlyAndLateFragmentTests_ )
+ : pNext{ pNext_ }
+ , shaderEarlyAndLateFragmentTests{ shaderEarlyAndLateFragmentTests_ }
{
}
@@ -82518,8 +83012,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderEnqueue( shaderEnqueue_ )
+ : pNext{ pNext_ }
+ , shaderEnqueue{ shaderEnqueue_ }
{
}
@@ -82621,12 +83115,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxExecutionGraphShaderPayloadCount_ = {},
uint32_t executionGraphDispatchAddressAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxExecutionGraphDepth( maxExecutionGraphDepth_ )
- , maxExecutionGraphShaderOutputNodes( maxExecutionGraphShaderOutputNodes_ )
- , maxExecutionGraphShaderPayloadSize( maxExecutionGraphShaderPayloadSize_ )
- , maxExecutionGraphShaderPayloadCount( maxExecutionGraphShaderPayloadCount_ )
- , executionGraphDispatchAddressAlignment( executionGraphDispatchAddressAlignment_ )
+ : pNext{ pNext_ }
+ , maxExecutionGraphDepth{ maxExecutionGraphDepth_ }
+ , maxExecutionGraphShaderOutputNodes{ maxExecutionGraphShaderOutputNodes_ }
+ , maxExecutionGraphShaderPayloadSize{ maxExecutionGraphShaderPayloadSize_ }
+ , maxExecutionGraphShaderPayloadCount{ maxExecutionGraphShaderPayloadCount_ }
+ , executionGraphDispatchAddressAlignment{ executionGraphDispatchAddressAlignment_ }
{
}
@@ -82771,8 +83265,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderExpectAssumeFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderExpectAssume_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderExpectAssume( shaderExpectAssume_ )
+ : pNext{ pNext_ }
+ , shaderExpectAssume{ shaderExpectAssume_ }
{
}
@@ -82870,9 +83364,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderFloat16( shaderFloat16_ )
- , shaderInt8( shaderInt8_ )
+ : pNext{ pNext_ }
+ , shaderFloat16{ shaderFloat16_ }
+ , shaderInt8{ shaderInt8_ }
{
}
@@ -82978,8 +83472,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloatControls2FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderFloatControls2_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderFloatControls2( shaderFloatControls2_ )
+ : pNext{ pNext_ }
+ , shaderFloatControls2{ shaderFloatControls2_ }
{
}
@@ -83078,9 +83572,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {},
VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderImageInt64Atomics( shaderImageInt64Atomics_ )
- , sparseImageInt64Atomics( sparseImageInt64Atomics_ )
+ : pNext{ pNext_ }
+ , shaderImageInt64Atomics{ shaderImageInt64Atomics_ }
+ , sparseImageInt64Atomics{ sparseImageInt64Atomics_ }
{
}
@@ -83187,8 +83681,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageFootprint( imageFootprint_ )
+ : pNext{ pNext_ }
+ , imageFootprint{ imageFootprint_ }
{
}
@@ -83284,8 +83778,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
+ : pNext{ pNext_ }
+ , shaderIntegerDotProduct{ shaderIntegerDotProduct_ }
{
}
@@ -83415,38 +83909,37 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
- , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
- , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
- , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
- , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
- , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
- , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
- , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
- , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
- , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
- , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
- , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
- , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
- , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
- , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
- integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
+ : pNext{ pNext_ }
+ , integerDotProduct8BitUnsignedAccelerated{ integerDotProduct8BitUnsignedAccelerated_ }
+ , integerDotProduct8BitSignedAccelerated{ integerDotProduct8BitSignedAccelerated_ }
+ , integerDotProduct8BitMixedSignednessAccelerated{ integerDotProduct8BitMixedSignednessAccelerated_ }
+ , integerDotProduct4x8BitPackedUnsignedAccelerated{ integerDotProduct4x8BitPackedUnsignedAccelerated_ }
+ , integerDotProduct4x8BitPackedSignedAccelerated{ integerDotProduct4x8BitPackedSignedAccelerated_ }
+ , integerDotProduct4x8BitPackedMixedSignednessAccelerated{ integerDotProduct4x8BitPackedMixedSignednessAccelerated_ }
+ , integerDotProduct16BitUnsignedAccelerated{ integerDotProduct16BitUnsignedAccelerated_ }
+ , integerDotProduct16BitSignedAccelerated{ integerDotProduct16BitSignedAccelerated_ }
+ , integerDotProduct16BitMixedSignednessAccelerated{ integerDotProduct16BitMixedSignednessAccelerated_ }
+ , integerDotProduct32BitUnsignedAccelerated{ integerDotProduct32BitUnsignedAccelerated_ }
+ , integerDotProduct32BitSignedAccelerated{ integerDotProduct32BitSignedAccelerated_ }
+ , integerDotProduct32BitMixedSignednessAccelerated{ integerDotProduct32BitMixedSignednessAccelerated_ }
+ , integerDotProduct64BitUnsignedAccelerated{ integerDotProduct64BitUnsignedAccelerated_ }
+ , integerDotProduct64BitSignedAccelerated{ integerDotProduct64BitSignedAccelerated_ }
+ , integerDotProduct64BitMixedSignednessAccelerated{ integerDotProduct64BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitSignedAccelerated{ integerDotProductAccumulatingSaturating8BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitSignedAccelerated{ integerDotProductAccumulatingSaturating16BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitSignedAccelerated{ integerDotProductAccumulatingSaturating32BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitSignedAccelerated{ integerDotProductAccumulatingSaturating64BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ }
{
}
@@ -83658,8 +84151,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderIntegerFunctions2( shaderIntegerFunctions2_ )
+ : pNext{ pNext_ }
+ , shaderIntegerFunctions2{ shaderIntegerFunctions2_ }
{
}
@@ -83758,8 +84251,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderMaximalReconvergence_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderMaximalReconvergence( shaderMaximalReconvergence_ )
+ : pNext{ pNext_ }
+ , shaderMaximalReconvergence{ shaderMaximalReconvergence_ }
{
}
@@ -83858,8 +84351,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderModuleIdentifier( shaderModuleIdentifier_ )
+ : pNext{ pNext_ }
+ , shaderModuleIdentifier{ shaderModuleIdentifier_ }
{
}
@@ -83958,8 +84451,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14
PhysicalDeviceShaderModuleIdentifierPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderModuleIdentifierAlgorithmUUID_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderModuleIdentifierAlgorithmUUID( shaderModuleIdentifierAlgorithmUUID_ )
+ : pNext{ pNext_ }
+ , shaderModuleIdentifierAlgorithmUUID{ shaderModuleIdentifierAlgorithmUUID_ }
{
}
@@ -84042,8 +84535,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderObject( shaderObject_ )
+ : pNext{ pNext_ }
+ , shaderObject{ shaderObject_ }
{
}
@@ -84140,9 +84633,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderBinaryUUID_ = {},
uint32_t shaderBinaryVersion_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderBinaryUUID( shaderBinaryUUID_ )
- , shaderBinaryVersion( shaderBinaryVersion_ )
+ : pNext{ pNext_ }
+ , shaderBinaryUUID{ shaderBinaryUUID_ }
+ , shaderBinaryVersion{ shaderBinaryVersion_ }
{
}
@@ -84227,8 +84720,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderQuadControlFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderQuadControl_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderQuadControl( shaderQuadControl_ )
+ : pNext{ pNext_ }
+ , shaderQuadControl{ shaderQuadControl_ }
{
}
@@ -84325,8 +84818,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSMBuiltins( shaderSMBuiltins_ )
+ : pNext{ pNext_ }
+ , shaderSMBuiltins{ shaderSMBuiltins_ }
{
}
@@ -84422,9 +84915,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSMCount( shaderSMCount_ )
- , shaderWarpsPerSM( shaderWarpsPerSM_ )
+ : pNext{ pNext_ }
+ , shaderSMCount{ shaderSMCount_ }
+ , shaderWarpsPerSM{ shaderWarpsPerSM_ }
{
}
@@ -84507,8 +85000,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
+ : pNext{ pNext_ }
+ , shaderSubgroupExtendedTypes{ shaderSubgroupExtendedTypes_ }
{
}
@@ -84610,9 +85103,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupRotateFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupRotate_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupRotateClustered_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSubgroupRotate( shaderSubgroupRotate_ )
- , shaderSubgroupRotateClustered( shaderSubgroupRotateClustered_ )
+ : pNext{ pNext_ }
+ , shaderSubgroupRotate{ shaderSubgroupRotate_ }
+ , shaderSubgroupRotateClustered{ shaderSubgroupRotateClustered_ }
{
}
@@ -84719,8 +85212,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderSubgroupUniformControlFlow( shaderSubgroupUniformControlFlow_ )
+ : pNext{ pNext_ }
+ , shaderSubgroupUniformControlFlow{ shaderSubgroupUniformControlFlow_ }
{
}
@@ -84821,8 +85314,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderTerminateInvocation( shaderTerminateInvocation_ )
+ : pNext{ pNext_ }
+ , shaderTerminateInvocation{ shaderTerminateInvocation_ }
{
}
@@ -84924,10 +85417,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderTileImageColorReadAccess( shaderTileImageColorReadAccess_ )
- , shaderTileImageDepthReadAccess( shaderTileImageDepthReadAccess_ )
- , shaderTileImageStencilReadAccess( shaderTileImageStencilReadAccess_ )
+ : pNext{ pNext_ }
+ , shaderTileImageColorReadAccess{ shaderTileImageColorReadAccess_ }
+ , shaderTileImageDepthReadAccess{ shaderTileImageDepthReadAccess_ }
+ , shaderTileImageStencilReadAccess{ shaderTileImageStencilReadAccess_ }
{
}
@@ -85048,10 +85541,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderTileImageCoherentReadAccelerated( shaderTileImageCoherentReadAccelerated_ )
- , shaderTileImageReadSampleFromPixelRateInvocation( shaderTileImageReadSampleFromPixelRateInvocation_ )
- , shaderTileImageReadFromHelperInvocation( shaderTileImageReadFromHelperInvocation_ )
+ : pNext{ pNext_ }
+ , shaderTileImageCoherentReadAccelerated{ shaderTileImageCoherentReadAccelerated_ }
+ , shaderTileImageReadSampleFromPixelRateInvocation{ shaderTileImageReadSampleFromPixelRateInvocation_ }
+ , shaderTileImageReadFromHelperInvocation{ shaderTileImageReadFromHelperInvocation_ }
{
}
@@ -85143,9 +85636,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shadingRateImage( shadingRateImage_ )
- , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
+ : pNext{ pNext_ }
+ , shadingRateImage{ shadingRateImage_ }
+ , shadingRateCoarseSampleOrder{ shadingRateCoarseSampleOrder_ }
{
}
@@ -85252,10 +85745,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t shadingRatePaletteSize_ = {},
uint32_t shadingRateMaxCoarseSamples_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shadingRateTexelSize( shadingRateTexelSize_ )
- , shadingRatePaletteSize( shadingRatePaletteSize_ )
- , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
+ : pNext{ pNext_ }
+ , shadingRateTexelSize{ shadingRateTexelSize_ }
+ , shadingRatePaletteSize{ shadingRatePaletteSize_ }
+ , shadingRateMaxCoarseSamples{ shadingRateMaxCoarseSamples_ }
{
}
@@ -85345,12 +85838,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , type( type_ )
- , samples( samples_ )
- , usage( usage_ )
- , tiling( tiling_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , type{ type_ }
+ , samples{ samples_ }
+ , usage{ usage_ }
+ , tiling{ tiling_ }
{
}
@@ -85486,11 +85979,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {},
VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subgroupSize( subgroupSize_ )
- , supportedStages( supportedStages_ )
- , supportedOperations( supportedOperations_ )
- , quadOperationsInAllStages( quadOperationsInAllStages_ )
+ : pNext{ pNext_ }
+ , subgroupSize{ subgroupSize_ }
+ , supportedStages{ supportedStages_ }
+ , supportedOperations{ supportedOperations_ }
+ , quadOperationsInAllStages{ quadOperationsInAllStages_ }
{
}
@@ -85582,9 +86075,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subgroupSizeControl( subgroupSizeControl_ )
- , computeFullSubgroups( computeFullSubgroups_ )
+ : pNext{ pNext_ }
+ , subgroupSizeControl{ subgroupSizeControl_ }
+ , computeFullSubgroups{ computeFullSubgroups_ }
{
}
@@ -85695,11 +86188,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxComputeWorkgroupSubgroups_ = {},
VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minSubgroupSize( minSubgroupSize_ )
- , maxSubgroupSize( maxSubgroupSize_ )
- , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
- , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
+ : pNext{ pNext_ }
+ , minSubgroupSize{ minSubgroupSize_ }
+ , maxSubgroupSize{ maxSubgroupSize_ }
+ , maxComputeWorkgroupSubgroups{ maxComputeWorkgroupSubgroups_ }
+ , requiredSubgroupSizeStages{ requiredSubgroupSizeStages_ }
{
}
@@ -85792,8 +86285,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subpassMergeFeedback( subpassMergeFeedback_ )
+ : pNext{ pNext_ }
+ , subpassMergeFeedback{ subpassMergeFeedback_ }
{
}
@@ -85891,8 +86384,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subpassShading( subpassShading_ )
+ : pNext{ pNext_ }
+ , subpassShading{ subpassShading_ }
{
}
@@ -85988,8 +86481,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( uint32_t maxSubpassShadingWorkgroupSizeAspectRatio_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxSubpassShadingWorkgroupSizeAspectRatio( maxSubpassShadingWorkgroupSizeAspectRatio_ )
+ : pNext{ pNext_ }
+ , maxSubpassShadingWorkgroupSizeAspectRatio{ maxSubpassShadingWorkgroupSizeAspectRatio_ }
{
}
@@ -86070,8 +86563,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , surface( surface_ )
+ : pNext{ pNext_ }
+ , surface{ surface_ }
{
}
@@ -86167,8 +86660,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSwapchainMaintenance1FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainMaintenance1( swapchainMaintenance1_ )
+ : pNext{ pNext_ }
+ , swapchainMaintenance1{ swapchainMaintenance1_ }
{
}
@@ -86266,8 +86759,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , synchronization2( synchronization2_ )
+ : pNext{ pNext_ }
+ , synchronization2{ synchronization2_ }
{
}
@@ -86365,8 +86858,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , texelBufferAlignment( texelBufferAlignment_ )
+ : pNext{ pNext_ }
+ , texelBufferAlignment{ texelBufferAlignment_ }
{
}
@@ -86467,11 +86960,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
- , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
- , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
- , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
+ : pNext{ pNext_ }
+ , storageTexelBufferOffsetAlignmentBytes{ storageTexelBufferOffsetAlignmentBytes_ }
+ , storageTexelBufferOffsetSingleTexelAlignment{ storageTexelBufferOffsetSingleTexelAlignment_ }
+ , uniformTexelBufferOffsetAlignmentBytes{ uniformTexelBufferOffsetAlignmentBytes_ }
+ , uniformTexelBufferOffsetSingleTexelAlignment{ uniformTexelBufferOffsetSingleTexelAlignment_ }
{
}
@@ -86571,8 +87064,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeatures( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
+ : pNext{ pNext_ }
+ , textureCompressionASTC_HDR{ textureCompressionASTC_HDR_ }
{
}
@@ -86672,8 +87165,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , tileProperties( tileProperties_ )
+ : pNext{ pNext_ }
+ , tileProperties{ tileProperties_ }
{
}
@@ -86769,8 +87262,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , timelineSemaphore( timelineSemaphore_ )
+ : pNext{ pNext_ }
+ , timelineSemaphore{ timelineSemaphore_ }
{
}
@@ -86869,8 +87362,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
+ : pNext{ pNext_ }
+ , maxTimelineSemaphoreValueDifference{ maxTimelineSemaphoreValueDifference_ }
{
}
@@ -86958,12 +87451,12 @@ namespace VULKAN_HPP_NAMESPACE
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & layer_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , name( name_ )
- , version( version_ )
- , purposes( purposes_ )
- , description( description_ )
- , layer( layer_ )
+ : pNext{ pNext_ }
+ , name{ name_ }
+ , version{ version_ }
+ , purposes{ purposes_ }
+ , description{ description_ }
+ , layer{ layer_ }
{
}
@@ -87112,9 +87605,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {},
VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , transformFeedback( transformFeedback_ )
- , geometryStreams( geometryStreams_ )
+ : pNext{ pNext_ }
+ , transformFeedback{ transformFeedback_ }
+ , geometryStreams{ geometryStreams_ }
{
}
@@ -87227,17 +87720,17 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {},
VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxTransformFeedbackStreams( maxTransformFeedbackStreams_ )
- , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ )
- , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ )
- , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ )
- , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ )
- , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ )
- , transformFeedbackQueries( transformFeedbackQueries_ )
- , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ )
- , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ )
- , transformFeedbackDraw( transformFeedbackDraw_ )
+ : pNext{ pNext_ }
+ , maxTransformFeedbackStreams{ maxTransformFeedbackStreams_ }
+ , maxTransformFeedbackBuffers{ maxTransformFeedbackBuffers_ }
+ , maxTransformFeedbackBufferSize{ maxTransformFeedbackBufferSize_ }
+ , maxTransformFeedbackStreamDataSize{ maxTransformFeedbackStreamDataSize_ }
+ , maxTransformFeedbackBufferDataSize{ maxTransformFeedbackBufferDataSize_ }
+ , maxTransformFeedbackBufferDataStride{ maxTransformFeedbackBufferDataStride_ }
+ , transformFeedbackQueries{ transformFeedbackQueries_ }
+ , transformFeedbackStreamsLinesTriangles{ transformFeedbackStreamsLinesTriangles_ }
+ , transformFeedbackRasterizationStreamSelect{ transformFeedbackRasterizationStreamSelect_ }
+ , transformFeedbackDraw{ transformFeedbackDraw_ }
{
}
@@ -87358,8 +87851,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
+ : pNext{ pNext_ }
+ , uniformBufferStandardLayout{ uniformBufferStandardLayout_ }
{
}
@@ -87461,9 +87954,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
- , variablePointers( variablePointers_ )
+ : pNext{ pNext_ }
+ , variablePointersStorageBuffer{ variablePointersStorageBuffer_ }
+ , variablePointers{ variablePointers_ }
{
}
@@ -87573,9 +88066,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {},
VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
- , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
+ : pNext{ pNext_ }
+ , vertexAttributeInstanceRateDivisor{ vertexAttributeInstanceRateDivisor_ }
+ , vertexAttributeInstanceRateZeroDivisor{ vertexAttributeInstanceRateZeroDivisor_ }
{
}
@@ -87683,8 +88176,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxVertexAttribDivisor( maxVertexAttribDivisor_ )
+ : pNext{ pNext_ }
+ , maxVertexAttribDivisor{ maxVertexAttribDivisor_ }
{
}
@@ -87769,9 +88262,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesKHR( uint32_t maxVertexAttribDivisor_ = {},
VULKAN_HPP_NAMESPACE::Bool32 supportsNonZeroFirstInstance_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxVertexAttribDivisor( maxVertexAttribDivisor_ )
- , supportsNonZeroFirstInstance( supportsNonZeroFirstInstance_ )
+ : pNext{ pNext_ }
+ , maxVertexAttribDivisor{ maxVertexAttribDivisor_ }
+ , supportsNonZeroFirstInstance{ supportsNonZeroFirstInstance_ }
{
}
@@ -87857,8 +88350,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexInputDynamicState( vertexInputDynamicState_ )
+ : pNext{ pNext_ }
+ , vertexInputDynamicState{ vertexInputDynamicState_ }
{
}
@@ -87960,11 +88453,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ = {},
VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoCodecOperation( videoCodecOperation_ )
- , chromaSubsampling( chromaSubsampling_ )
- , lumaBitDepth( lumaBitDepth_ )
- , chromaBitDepth( chromaBitDepth_ )
+ : pNext{ pNext_ }
+ , videoCodecOperation{ videoCodecOperation_ }
+ , chromaSubsampling{ chromaSubsampling_ }
+ , lumaBitDepth{ lumaBitDepth_ }
+ , chromaBitDepth{ chromaBitDepth_ }
{
}
@@ -88089,9 +88582,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {},
uint32_t qualityLevel_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pVideoProfile( pVideoProfile_ )
- , qualityLevel( qualityLevel_ )
+ : pNext{ pNext_ }
+ , pVideoProfile{ pVideoProfile_ }
+ , qualityLevel{ qualityLevel_ }
{
}
@@ -88195,8 +88688,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageUsage( imageUsage_ )
+ : pNext{ pNext_ }
+ , imageUsage{ imageUsage_ }
{
}
@@ -88292,8 +88785,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoMaintenance1FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 videoMaintenance1_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoMaintenance1( videoMaintenance1_ )
+ : pNext{ pNext_ }
+ , videoMaintenance1{ videoMaintenance1_ }
{
}
@@ -88401,19 +88894,19 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
- , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
- , storagePushConstant16( storagePushConstant16_ )
- , storageInputOutput16( storageInputOutput16_ )
- , multiview( multiview_ )
- , multiviewGeometryShader( multiviewGeometryShader_ )
- , multiviewTessellationShader( multiviewTessellationShader_ )
- , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
- , variablePointers( variablePointers_ )
- , protectedMemory( protectedMemory_ )
- , samplerYcbcrConversion( samplerYcbcrConversion_ )
- , shaderDrawParameters( shaderDrawParameters_ )
+ : pNext{ pNext_ }
+ , storageBuffer16BitAccess{ storageBuffer16BitAccess_ }
+ , uniformAndStorageBuffer16BitAccess{ uniformAndStorageBuffer16BitAccess_ }
+ , storagePushConstant16{ storagePushConstant16_ }
+ , storageInputOutput16{ storageInputOutput16_ }
+ , multiview{ multiview_ }
+ , multiviewGeometryShader{ multiviewGeometryShader_ }
+ , multiviewTessellationShader{ multiviewTessellationShader_ }
+ , variablePointersStorageBuffer{ variablePointersStorageBuffer_ }
+ , variablePointers{ variablePointers_ }
+ , protectedMemory{ protectedMemory_ }
+ , samplerYcbcrConversion{ samplerYcbcrConversion_ }
+ , shaderDrawParameters{ shaderDrawParameters_ }
{
}
@@ -88639,22 +89132,22 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxPerSetDescriptors_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , deviceUUID( deviceUUID_ )
- , driverUUID( driverUUID_ )
- , deviceLUID( deviceLUID_ )
- , deviceNodeMask( deviceNodeMask_ )
- , deviceLUIDValid( deviceLUIDValid_ )
- , subgroupSize( subgroupSize_ )
- , subgroupSupportedStages( subgroupSupportedStages_ )
- , subgroupSupportedOperations( subgroupSupportedOperations_ )
- , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ )
- , pointClippingBehavior( pointClippingBehavior_ )
- , maxMultiviewViewCount( maxMultiviewViewCount_ )
- , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
- , protectedNoFault( protectedNoFault_ )
- , maxPerSetDescriptors( maxPerSetDescriptors_ )
- , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
+ : pNext{ pNext_ }
+ , deviceUUID{ deviceUUID_ }
+ , driverUUID{ driverUUID_ }
+ , deviceLUID{ deviceLUID_ }
+ , deviceNodeMask{ deviceNodeMask_ }
+ , deviceLUIDValid{ deviceLUIDValid_ }
+ , subgroupSize{ subgroupSize_ }
+ , subgroupSupportedStages{ subgroupSupportedStages_ }
+ , subgroupSupportedOperations{ subgroupSupportedOperations_ }
+ , subgroupQuadOperationsInAllStages{ subgroupQuadOperationsInAllStages_ }
+ , pointClippingBehavior{ pointClippingBehavior_ }
+ , maxMultiviewViewCount{ maxMultiviewViewCount_ }
+ , maxMultiviewInstanceIndex{ maxMultiviewInstanceIndex_ }
+ , protectedNoFault{ protectedNoFault_ }
+ , maxPerSetDescriptors{ maxPerSetDescriptors_ }
+ , maxMemoryAllocationSize{ maxMemoryAllocationSize_ }
{
}
@@ -88835,54 +89328,54 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {},
VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , samplerMirrorClampToEdge( samplerMirrorClampToEdge_ )
- , drawIndirectCount( drawIndirectCount_ )
- , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
- , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
- , storagePushConstant8( storagePushConstant8_ )
- , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
- , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
- , shaderFloat16( shaderFloat16_ )
- , shaderInt8( shaderInt8_ )
- , descriptorIndexing( descriptorIndexing_ )
- , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
- , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
- , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
- , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
- , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
- , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
- , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
- , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
- , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
- , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
- , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
- , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
- , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
- , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
- , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
- , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
- , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
- , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
- , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
- , runtimeDescriptorArray( runtimeDescriptorArray_ )
- , samplerFilterMinmax( samplerFilterMinmax_ )
- , scalarBlockLayout( scalarBlockLayout_ )
- , imagelessFramebuffer( imagelessFramebuffer_ )
- , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
- , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
- , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
- , hostQueryReset( hostQueryReset_ )
- , timelineSemaphore( timelineSemaphore_ )
- , bufferDeviceAddress( bufferDeviceAddress_ )
- , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
- , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
- , vulkanMemoryModel( vulkanMemoryModel_ )
- , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
- , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
- , shaderOutputViewportIndex( shaderOutputViewportIndex_ )
- , shaderOutputLayer( shaderOutputLayer_ )
- , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
+ : pNext{ pNext_ }
+ , samplerMirrorClampToEdge{ samplerMirrorClampToEdge_ }
+ , drawIndirectCount{ drawIndirectCount_ }
+ , storageBuffer8BitAccess{ storageBuffer8BitAccess_ }
+ , uniformAndStorageBuffer8BitAccess{ uniformAndStorageBuffer8BitAccess_ }
+ , storagePushConstant8{ storagePushConstant8_ }
+ , shaderBufferInt64Atomics{ shaderBufferInt64Atomics_ }
+ , shaderSharedInt64Atomics{ shaderSharedInt64Atomics_ }
+ , shaderFloat16{ shaderFloat16_ }
+ , shaderInt8{ shaderInt8_ }
+ , descriptorIndexing{ descriptorIndexing_ }
+ , shaderInputAttachmentArrayDynamicIndexing{ shaderInputAttachmentArrayDynamicIndexing_ }
+ , shaderUniformTexelBufferArrayDynamicIndexing{ shaderUniformTexelBufferArrayDynamicIndexing_ }
+ , shaderStorageTexelBufferArrayDynamicIndexing{ shaderStorageTexelBufferArrayDynamicIndexing_ }
+ , shaderUniformBufferArrayNonUniformIndexing{ shaderUniformBufferArrayNonUniformIndexing_ }
+ , shaderSampledImageArrayNonUniformIndexing{ shaderSampledImageArrayNonUniformIndexing_ }
+ , shaderStorageBufferArrayNonUniformIndexing{ shaderStorageBufferArrayNonUniformIndexing_ }
+ , shaderStorageImageArrayNonUniformIndexing{ shaderStorageImageArrayNonUniformIndexing_ }
+ , shaderInputAttachmentArrayNonUniformIndexing{ shaderInputAttachmentArrayNonUniformIndexing_ }
+ , shaderUniformTexelBufferArrayNonUniformIndexing{ shaderUniformTexelBufferArrayNonUniformIndexing_ }
+ , shaderStorageTexelBufferArrayNonUniformIndexing{ shaderStorageTexelBufferArrayNonUniformIndexing_ }
+ , descriptorBindingUniformBufferUpdateAfterBind{ descriptorBindingUniformBufferUpdateAfterBind_ }
+ , descriptorBindingSampledImageUpdateAfterBind{ descriptorBindingSampledImageUpdateAfterBind_ }
+ , descriptorBindingStorageImageUpdateAfterBind{ descriptorBindingStorageImageUpdateAfterBind_ }
+ , descriptorBindingStorageBufferUpdateAfterBind{ descriptorBindingStorageBufferUpdateAfterBind_ }
+ , descriptorBindingUniformTexelBufferUpdateAfterBind{ descriptorBindingUniformTexelBufferUpdateAfterBind_ }
+ , descriptorBindingStorageTexelBufferUpdateAfterBind{ descriptorBindingStorageTexelBufferUpdateAfterBind_ }
+ , descriptorBindingUpdateUnusedWhilePending{ descriptorBindingUpdateUnusedWhilePending_ }
+ , descriptorBindingPartiallyBound{ descriptorBindingPartiallyBound_ }
+ , descriptorBindingVariableDescriptorCount{ descriptorBindingVariableDescriptorCount_ }
+ , runtimeDescriptorArray{ runtimeDescriptorArray_ }
+ , samplerFilterMinmax{ samplerFilterMinmax_ }
+ , scalarBlockLayout{ scalarBlockLayout_ }
+ , imagelessFramebuffer{ imagelessFramebuffer_ }
+ , uniformBufferStandardLayout{ uniformBufferStandardLayout_ }
+ , shaderSubgroupExtendedTypes{ shaderSubgroupExtendedTypes_ }
+ , separateDepthStencilLayouts{ separateDepthStencilLayouts_ }
+ , hostQueryReset{ hostQueryReset_ }
+ , timelineSemaphore{ timelineSemaphore_ }
+ , bufferDeviceAddress{ bufferDeviceAddress_ }
+ , bufferDeviceAddressCaptureReplay{ bufferDeviceAddressCaptureReplay_ }
+ , bufferDeviceAddressMultiDevice{ bufferDeviceAddressMultiDevice_ }
+ , vulkanMemoryModel{ vulkanMemoryModel_ }
+ , vulkanMemoryModelDeviceScope{ vulkanMemoryModelDeviceScope_ }
+ , vulkanMemoryModelAvailabilityVisibilityChains{ vulkanMemoryModelAvailabilityVisibilityChains_ }
+ , shaderOutputViewportIndex{ shaderOutputViewportIndex_ }
+ , shaderOutputLayer{ shaderOutputLayer_ }
+ , subgroupBroadcastDynamicId{ subgroupBroadcastDynamicId_ }
{
}
@@ -89516,59 +90009,59 @@ namespace VULKAN_HPP_NAMESPACE
uint64_t maxTimelineSemaphoreValueDifference_ = {},
VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , driverID( driverID_ )
- , driverName( driverName_ )
- , driverInfo( driverInfo_ )
- , conformanceVersion( conformanceVersion_ )
- , denormBehaviorIndependence( denormBehaviorIndependence_ )
- , roundingModeIndependence( roundingModeIndependence_ )
- , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
- , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
- , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
- , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
- , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
- , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
- , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
- , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
- , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
- , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
- , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
- , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
- , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
- , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
- , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
- , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
- , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
- , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
- , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
- , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
- , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
- , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
- , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
- , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
- , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
- , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
- , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
- , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
- , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
- , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
- , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
- , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
- , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
- , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
- , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
- , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
- , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
- , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
- , supportedDepthResolveModes( supportedDepthResolveModes_ )
- , supportedStencilResolveModes( supportedStencilResolveModes_ )
- , independentResolveNone( independentResolveNone_ )
- , independentResolve( independentResolve_ )
- , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
- , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
- , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
- , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
+ : pNext{ pNext_ }
+ , driverID{ driverID_ }
+ , driverName{ driverName_ }
+ , driverInfo{ driverInfo_ }
+ , conformanceVersion{ conformanceVersion_ }
+ , denormBehaviorIndependence{ denormBehaviorIndependence_ }
+ , roundingModeIndependence{ roundingModeIndependence_ }
+ , shaderSignedZeroInfNanPreserveFloat16{ shaderSignedZeroInfNanPreserveFloat16_ }
+ , shaderSignedZeroInfNanPreserveFloat32{ shaderSignedZeroInfNanPreserveFloat32_ }
+ , shaderSignedZeroInfNanPreserveFloat64{ shaderSignedZeroInfNanPreserveFloat64_ }
+ , shaderDenormPreserveFloat16{ shaderDenormPreserveFloat16_ }
+ , shaderDenormPreserveFloat32{ shaderDenormPreserveFloat32_ }
+ , shaderDenormPreserveFloat64{ shaderDenormPreserveFloat64_ }
+ , shaderDenormFlushToZeroFloat16{ shaderDenormFlushToZeroFloat16_ }
+ , shaderDenormFlushToZeroFloat32{ shaderDenormFlushToZeroFloat32_ }
+ , shaderDenormFlushToZeroFloat64{ shaderDenormFlushToZeroFloat64_ }
+ , shaderRoundingModeRTEFloat16{ shaderRoundingModeRTEFloat16_ }
+ , shaderRoundingModeRTEFloat32{ shaderRoundingModeRTEFloat32_ }
+ , shaderRoundingModeRTEFloat64{ shaderRoundingModeRTEFloat64_ }
+ , shaderRoundingModeRTZFloat16{ shaderRoundingModeRTZFloat16_ }
+ , shaderRoundingModeRTZFloat32{ shaderRoundingModeRTZFloat32_ }
+ , shaderRoundingModeRTZFloat64{ shaderRoundingModeRTZFloat64_ }
+ , maxUpdateAfterBindDescriptorsInAllPools{ maxUpdateAfterBindDescriptorsInAllPools_ }
+ , shaderUniformBufferArrayNonUniformIndexingNative{ shaderUniformBufferArrayNonUniformIndexingNative_ }
+ , shaderSampledImageArrayNonUniformIndexingNative{ shaderSampledImageArrayNonUniformIndexingNative_ }
+ , shaderStorageBufferArrayNonUniformIndexingNative{ shaderStorageBufferArrayNonUniformIndexingNative_ }
+ , shaderStorageImageArrayNonUniformIndexingNative{ shaderStorageImageArrayNonUniformIndexingNative_ }
+ , shaderInputAttachmentArrayNonUniformIndexingNative{ shaderInputAttachmentArrayNonUniformIndexingNative_ }
+ , robustBufferAccessUpdateAfterBind{ robustBufferAccessUpdateAfterBind_ }
+ , quadDivergentImplicitLod{ quadDivergentImplicitLod_ }
+ , maxPerStageDescriptorUpdateAfterBindSamplers{ maxPerStageDescriptorUpdateAfterBindSamplers_ }
+ , maxPerStageDescriptorUpdateAfterBindUniformBuffers{ maxPerStageDescriptorUpdateAfterBindUniformBuffers_ }
+ , maxPerStageDescriptorUpdateAfterBindStorageBuffers{ maxPerStageDescriptorUpdateAfterBindStorageBuffers_ }
+ , maxPerStageDescriptorUpdateAfterBindSampledImages{ maxPerStageDescriptorUpdateAfterBindSampledImages_ }
+ , maxPerStageDescriptorUpdateAfterBindStorageImages{ maxPerStageDescriptorUpdateAfterBindStorageImages_ }
+ , maxPerStageDescriptorUpdateAfterBindInputAttachments{ maxPerStageDescriptorUpdateAfterBindInputAttachments_ }
+ , maxPerStageUpdateAfterBindResources{ maxPerStageUpdateAfterBindResources_ }
+ , maxDescriptorSetUpdateAfterBindSamplers{ maxDescriptorSetUpdateAfterBindSamplers_ }
+ , maxDescriptorSetUpdateAfterBindUniformBuffers{ maxDescriptorSetUpdateAfterBindUniformBuffers_ }
+ , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic{ maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ }
+ , maxDescriptorSetUpdateAfterBindStorageBuffers{ maxDescriptorSetUpdateAfterBindStorageBuffers_ }
+ , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic{ maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ }
+ , maxDescriptorSetUpdateAfterBindSampledImages{ maxDescriptorSetUpdateAfterBindSampledImages_ }
+ , maxDescriptorSetUpdateAfterBindStorageImages{ maxDescriptorSetUpdateAfterBindStorageImages_ }
+ , maxDescriptorSetUpdateAfterBindInputAttachments{ maxDescriptorSetUpdateAfterBindInputAttachments_ }
+ , supportedDepthResolveModes{ supportedDepthResolveModes_ }
+ , supportedStencilResolveModes{ supportedStencilResolveModes_ }
+ , independentResolveNone{ independentResolveNone_ }
+ , independentResolve{ independentResolve_ }
+ , filterMinmaxSingleComponentFormats{ filterMinmaxSingleComponentFormats_ }
+ , filterMinmaxImageComponentMapping{ filterMinmaxImageComponentMapping_ }
+ , maxTimelineSemaphoreValueDifference{ maxTimelineSemaphoreValueDifference_ }
+ , framebufferIntegerColorSampleCounts{ framebufferIntegerColorSampleCounts_ }
{
}
@@ -90092,22 +90585,22 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , robustImageAccess( robustImageAccess_ )
- , inlineUniformBlock( inlineUniformBlock_ )
- , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
- , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
- , privateData( privateData_ )
- , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
- , shaderTerminateInvocation( shaderTerminateInvocation_ )
- , subgroupSizeControl( subgroupSizeControl_ )
- , computeFullSubgroups( computeFullSubgroups_ )
- , synchronization2( synchronization2_ )
- , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
- , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
- , dynamicRendering( dynamicRendering_ )
- , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
- , maintenance4( maintenance4_ )
+ : pNext{ pNext_ }
+ , robustImageAccess{ robustImageAccess_ }
+ , inlineUniformBlock{ inlineUniformBlock_ }
+ , descriptorBindingInlineUniformBlockUpdateAfterBind{ descriptorBindingInlineUniformBlockUpdateAfterBind_ }
+ , pipelineCreationCacheControl{ pipelineCreationCacheControl_ }
+ , privateData{ privateData_ }
+ , shaderDemoteToHelperInvocation{ shaderDemoteToHelperInvocation_ }
+ , shaderTerminateInvocation{ shaderTerminateInvocation_ }
+ , subgroupSizeControl{ subgroupSizeControl_ }
+ , computeFullSubgroups{ computeFullSubgroups_ }
+ , synchronization2{ synchronization2_ }
+ , textureCompressionASTC_HDR{ textureCompressionASTC_HDR_ }
+ , shaderZeroInitializeWorkgroupMemory{ shaderZeroInitializeWorkgroupMemory_ }
+ , dynamicRendering{ dynamicRendering_ }
+ , shaderIntegerDotProduct{ shaderIntegerDotProduct_ }
+ , maintenance4{ maintenance4_ }
{
}
@@ -90393,53 +90886,52 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minSubgroupSize( minSubgroupSize_ )
- , maxSubgroupSize( maxSubgroupSize_ )
- , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
- , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
- , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
- , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
- , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
- , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
- , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
- , maxInlineUniformTotalSize( maxInlineUniformTotalSize_ )
- , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
- , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
- , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
- , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
- , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
- , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
- , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
- , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
- , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
- , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
- , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
- , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
- , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
- , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
- , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
- integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
- , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
- , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
- , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
- , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
- , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
- , maxBufferSize( maxBufferSize_ )
+ : pNext{ pNext_ }
+ , minSubgroupSize{ minSubgroupSize_ }
+ , maxSubgroupSize{ maxSubgroupSize_ }
+ , maxComputeWorkgroupSubgroups{ maxComputeWorkgroupSubgroups_ }
+ , requiredSubgroupSizeStages{ requiredSubgroupSizeStages_ }
+ , maxInlineUniformBlockSize{ maxInlineUniformBlockSize_ }
+ , maxPerStageDescriptorInlineUniformBlocks{ maxPerStageDescriptorInlineUniformBlocks_ }
+ , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks{ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ }
+ , maxDescriptorSetInlineUniformBlocks{ maxDescriptorSetInlineUniformBlocks_ }
+ , maxDescriptorSetUpdateAfterBindInlineUniformBlocks{ maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ }
+ , maxInlineUniformTotalSize{ maxInlineUniformTotalSize_ }
+ , integerDotProduct8BitUnsignedAccelerated{ integerDotProduct8BitUnsignedAccelerated_ }
+ , integerDotProduct8BitSignedAccelerated{ integerDotProduct8BitSignedAccelerated_ }
+ , integerDotProduct8BitMixedSignednessAccelerated{ integerDotProduct8BitMixedSignednessAccelerated_ }
+ , integerDotProduct4x8BitPackedUnsignedAccelerated{ integerDotProduct4x8BitPackedUnsignedAccelerated_ }
+ , integerDotProduct4x8BitPackedSignedAccelerated{ integerDotProduct4x8BitPackedSignedAccelerated_ }
+ , integerDotProduct4x8BitPackedMixedSignednessAccelerated{ integerDotProduct4x8BitPackedMixedSignednessAccelerated_ }
+ , integerDotProduct16BitUnsignedAccelerated{ integerDotProduct16BitUnsignedAccelerated_ }
+ , integerDotProduct16BitSignedAccelerated{ integerDotProduct16BitSignedAccelerated_ }
+ , integerDotProduct16BitMixedSignednessAccelerated{ integerDotProduct16BitMixedSignednessAccelerated_ }
+ , integerDotProduct32BitUnsignedAccelerated{ integerDotProduct32BitUnsignedAccelerated_ }
+ , integerDotProduct32BitSignedAccelerated{ integerDotProduct32BitSignedAccelerated_ }
+ , integerDotProduct32BitMixedSignednessAccelerated{ integerDotProduct32BitMixedSignednessAccelerated_ }
+ , integerDotProduct64BitUnsignedAccelerated{ integerDotProduct64BitUnsignedAccelerated_ }
+ , integerDotProduct64BitSignedAccelerated{ integerDotProduct64BitSignedAccelerated_ }
+ , integerDotProduct64BitMixedSignednessAccelerated{ integerDotProduct64BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitSignedAccelerated{ integerDotProductAccumulatingSaturating8BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitSignedAccelerated{ integerDotProductAccumulatingSaturating16BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitSignedAccelerated{ integerDotProductAccumulatingSaturating32BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated{ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitSignedAccelerated{ integerDotProductAccumulatingSaturating64BitSignedAccelerated_ }
+ , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated{ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ }
+ , storageTexelBufferOffsetAlignmentBytes{ storageTexelBufferOffsetAlignmentBytes_ }
+ , storageTexelBufferOffsetSingleTexelAlignment{ storageTexelBufferOffsetSingleTexelAlignment_ }
+ , uniformTexelBufferOffsetAlignmentBytes{ uniformTexelBufferOffsetAlignmentBytes_ }
+ , uniformTexelBufferOffsetSingleTexelAlignment{ uniformTexelBufferOffsetSingleTexelAlignment_ }
+ , maxBufferSize{ maxBufferSize_ }
{
}
@@ -90707,10 +91199,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vulkanMemoryModel( vulkanMemoryModel_ )
- , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
- , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
+ : pNext{ pNext_ }
+ , vulkanMemoryModel{ vulkanMemoryModel_ }
+ , vulkanMemoryModelDeviceScope{ vulkanMemoryModelDeviceScope_ }
+ , vulkanMemoryModelAvailabilityVisibilityChains{ vulkanMemoryModelAvailabilityVisibilityChains_ }
{
}
@@ -90835,11 +91327,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {},
VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ )
- , workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ )
- , workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ )
- , workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ )
+ : pNext{ pNext_ }
+ , workgroupMemoryExplicitLayout{ workgroupMemoryExplicitLayout_ }
+ , workgroupMemoryExplicitLayoutScalarBlockLayout{ workgroupMemoryExplicitLayoutScalarBlockLayout_ }
+ , workgroupMemoryExplicitLayout8BitAccess{ workgroupMemoryExplicitLayout8BitAccess_ }
+ , workgroupMemoryExplicitLayout16BitAccess{ workgroupMemoryExplicitLayout16BitAccess_ }
{
}
@@ -90976,8 +91468,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , ycbcr2plane444Formats( ycbcr2plane444Formats_ )
+ : pNext{ pNext_ }
+ , ycbcr2plane444Formats{ ycbcr2plane444Formats_ }
{
}
@@ -91074,8 +91566,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , ycbcrDegamma( ycbcrDegamma_ )
+ : pNext{ pNext_ }
+ , ycbcrDegamma{ ycbcrDegamma_ }
{
}
@@ -91171,8 +91663,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , ycbcrImageArrays( ycbcrImageArrays_ )
+ : pNext{ pNext_ }
+ , ycbcrImageArrays{ ycbcrImageArrays_ }
{
}
@@ -91269,8 +91761,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
+ : pNext{ pNext_ }
+ , shaderZeroInitializeWorkgroupMemory{ shaderZeroInitializeWorkgroupMemory_ }
{
}
@@ -91373,10 +91865,10 @@ namespace VULKAN_HPP_NAMESPACE
size_t initialDataSize_ = {},
const void * pInitialData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , initialDataSize( initialDataSize_ )
- , pInitialData( pInitialData_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , initialDataSize{ initialDataSize_ }
+ , pInitialData{ pInitialData_ }
{
}
@@ -91512,11 +92004,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t vendorID_ = {},
uint32_t deviceID_ = {},
std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {} ) VULKAN_HPP_NOEXCEPT
- : headerSize( headerSize_ )
- , headerVersion( headerVersion_ )
- , vendorID( vendorID_ )
- , deviceID( deviceID_ )
- , pipelineCacheUUID( pipelineCacheUUID_ )
+ : headerSize{ headerSize_ }
+ , headerVersion{ headerVersion_ }
+ , vendorID{ vendorID_ }
+ , deviceID{ deviceID_ }
+ , pipelineCacheUUID{ pipelineCacheUUID_ }
{
}
@@ -91635,10 +92127,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcPremultiplied( srcPremultiplied_ )
- , dstPremultiplied( dstPremultiplied_ )
- , blendOverlap( blendOverlap_ )
+ : pNext{ pNext_ }
+ , srcPremultiplied{ srcPremultiplied_ }
+ , dstPremultiplied{ dstPremultiplied_ }
+ , blendOverlap{ blendOverlap_ }
{
}
@@ -91757,9 +92249,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( uint32_t attachmentCount_ = {},
const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentCount( attachmentCount_ )
- , pColorWriteEnables( pColorWriteEnables_ )
+ : pNext{ pNext_ }
+ , attachmentCount{ attachmentCount_ }
+ , pColorWriteEnables{ pColorWriteEnables_ }
{
}
@@ -91881,8 +92373,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , compilerControlFlags( compilerControlFlags_ )
+ : pNext{ pNext_ }
+ , compilerControlFlags{ compilerControlFlags_ }
{
}
@@ -91984,12 +92476,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t coverageModulationTableCount_ = {},
const float * pCoverageModulationTable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , coverageModulationMode( coverageModulationMode_ )
- , coverageModulationTableEnable( coverageModulationTableEnable_ )
- , coverageModulationTableCount( coverageModulationTableCount_ )
- , pCoverageModulationTable( pCoverageModulationTable_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , coverageModulationMode{ coverageModulationMode_ }
+ , coverageModulationTableEnable{ coverageModulationTableEnable_ }
+ , coverageModulationTableCount{ coverageModulationTableCount_ }
+ , pCoverageModulationTable{ pCoverageModulationTable_ }
{
}
@@ -92154,9 +92646,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {},
VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , coverageReductionMode( coverageReductionMode_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , coverageReductionMode{ coverageReductionMode_ }
{
}
@@ -92266,10 +92758,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {},
uint32_t coverageToColorLocation_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , coverageToColorEnable( coverageToColorEnable_ )
- , coverageToColorLocation( coverageToColorLocation_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , coverageToColorEnable{ coverageToColorEnable_ }
+ , coverageToColorLocation{ coverageToColorLocation_ }
{
}
@@ -92386,8 +92878,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -92480,8 +92972,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags_ = {},
uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT
- : flags( flags_ )
- , duration( duration_ )
+ : flags{ flags_ }
+ , duration{ duration_ }
{
}
@@ -92560,10 +93052,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t pipelineStageCreationFeedbackCount_ = {},
VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pPipelineCreationFeedback( pPipelineCreationFeedback_ )
- , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
- , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
+ : pNext{ pNext_ }
+ , pPipelineCreationFeedback{ pPipelineCreationFeedback_ }
+ , pipelineStageCreationFeedbackCount{ pipelineStageCreationFeedbackCount_ }
+ , pPipelineStageCreationFeedbacks{ pPipelineStageCreationFeedbacks_ }
{
}
@@ -92712,11 +93204,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t discardRectangleCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , discardRectangleMode( discardRectangleMode_ )
- , discardRectangleCount( discardRectangleCount_ )
- , pDiscardRectangles( pDiscardRectangles_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , discardRectangleMode{ discardRectangleMode_ }
+ , discardRectangleCount{ discardRectangleCount_ }
+ , pDiscardRectangles{ pDiscardRectangles_ }
{
}
@@ -92867,9 +93359,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
uint32_t executableIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipeline( pipeline_ )
- , executableIndex( executableIndex_ )
+ : pNext{ pNext_ }
+ , pipeline{ pipeline_ }
+ , executableIndex{ executableIndex_ }
{
}
@@ -92976,12 +93468,12 @@ namespace VULKAN_HPP_NAMESPACE
size_t dataSize_ = {},
void * pData_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , name( name_ )
- , description( description_ )
- , isText( isText_ )
- , dataSize( dataSize_ )
- , pData( pData_ )
+ : pNext{ pNext_ }
+ , name{ name_ }
+ , description{ description_ }
+ , isText{ isText_ }
+ , dataSize{ dataSize_ }
+ , pData{ pData_ }
{
}
@@ -93117,11 +93609,11 @@ namespace VULKAN_HPP_NAMESPACE
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
uint32_t subgroupSize_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stages( stages_ )
- , name( name_ )
- , description( description_ )
- , subgroupSize( subgroupSize_ )
+ : pNext{ pNext_ }
+ , stages{ stages_ }
+ , name{ name_ }
+ , description{ description_ }
+ , subgroupSize{ subgroupSize_ }
{
}
@@ -93315,11 +93807,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32,
VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , name( name_ )
- , description( description_ )
- , format( format_ )
- , value( value_ )
+ : pNext{ pNext_ }
+ , name{ name_ }
+ , description{ description_ }
+ , format{ format_ }
+ , value{ value_ }
{
}
@@ -93420,10 +93912,10 @@ namespace VULKAN_HPP_NAMESPACE
std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shadingRateType( shadingRateType_ )
- , shadingRate( shadingRate_ )
- , combinerOps( combinerOps_ )
+ : pNext{ pNext_ }
+ , shadingRateType{ shadingRateType_ }
+ , shadingRate{ shadingRate_ }
+ , combinerOps{ combinerOps_ }
{
}
@@ -93545,9 +94037,9 @@ namespace VULKAN_HPP_NAMESPACE
std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentSize( fragmentSize_ )
- , combinerOps( combinerOps_ )
+ : pNext{ pNext_ }
+ , fragmentSize{ fragmentSize_ }
+ , combinerOps{ combinerOps_ }
{
}
@@ -93658,9 +94150,9 @@ namespace VULKAN_HPP_NAMESPACE
PipelineIndirectDeviceAddressInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , pipeline( pipeline_ )
+ : pNext{ pNext_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , pipeline{ pipeline_ }
{
}
@@ -93766,8 +94258,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipeline( pipeline_ )
+ : pNext{ pNext_ }
+ , pipeline{ pipeline_ }
{
}
@@ -93859,9 +94351,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
- : stageFlags( stageFlags_ )
- , offset( offset_ )
- , size( size_ )
+ : stageFlags{ stageFlags_ }
+ , offset{ offset_ }
+ , size{ size_ }
{
}
@@ -93958,12 +94450,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t pushConstantRangeCount_ = {},
const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , setLayoutCount( setLayoutCount_ )
- , pSetLayouts( pSetLayouts_ )
- , pushConstantRangeCount( pushConstantRangeCount_ )
- , pPushConstantRanges( pPushConstantRanges_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , setLayoutCount{ setLayoutCount_ }
+ , pSetLayouts{ pSetLayouts_ }
+ , pushConstantRangeCount{ pushConstantRangeCount_ }
+ , pPushConstantRanges{ pPushConstantRanges_ }
{
}
@@ -94131,8 +94623,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( std::array<uint8_t, VK_UUID_SIZE> const & pipelineIdentifier_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pipelineIdentifier( pipelineIdentifier_ )
+ : pNext{ pNext_ }
+ , pipelineIdentifier{ pipelineIdentifier_ }
{
}
@@ -94217,10 +94709,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled,
float extraPrimitiveOverestimationSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , conservativeRasterizationMode( conservativeRasterizationMode_ )
- , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , conservativeRasterizationMode{ conservativeRasterizationMode_ }
+ , extraPrimitiveOverestimationSize{ extraPrimitiveOverestimationSize_ }
{
}
@@ -94342,9 +94834,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {},
VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , depthClipEnable( depthClipEnable_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , depthClipEnable{ depthClipEnable_ }
{
}
@@ -94457,11 +94949,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t lineStippleFactor_ = {},
uint16_t lineStipplePattern_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , lineRasterizationMode( lineRasterizationMode_ )
- , stippledLineEnable( stippledLineEnable_ )
- , lineStippleFactor( lineStippleFactor_ )
- , lineStipplePattern( lineStipplePattern_ )
+ : pNext{ pNext_ }
+ , lineRasterizationMode{ lineRasterizationMode_ }
+ , stippledLineEnable{ stippledLineEnable_ }
+ , lineStippleFactor{ lineStippleFactor_ }
+ , lineStipplePattern{ lineStipplePattern_ }
{
}
@@ -94590,8 +95082,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT(
VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , provokingVertexMode( provokingVertexMode_ )
+ : pNext{ pNext_ }
+ , provokingVertexMode{ provokingVertexMode_ }
{
}
@@ -94692,8 +95184,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(
VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , rasterizationOrder( rasterizationOrder_ )
+ : pNext{ pNext_ }
+ , rasterizationOrder{ rasterizationOrder_ }
{
}
@@ -94792,9 +95284,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {},
uint32_t rasterizationStream_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , rasterizationStream( rasterizationStream_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , rasterizationStream{ rasterizationStream_ }
{
}
@@ -94906,12 +95398,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , viewMask( viewMask_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentFormats( pColorAttachmentFormats_ )
- , depthAttachmentFormat( depthAttachmentFormat_ )
- , stencilAttachmentFormat( stencilAttachmentFormat_ )
+ : pNext{ pNext_ }
+ , viewMask{ viewMask_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentFormats{ pColorAttachmentFormats_ }
+ , depthAttachmentFormat{ depthAttachmentFormat_ }
+ , stencilAttachmentFormat{ stencilAttachmentFormat_ }
{
}
@@ -95073,8 +95565,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , representativeFragmentTestEnable( representativeFragmentTestEnable_ )
+ : pNext{ pNext_ }
+ , representativeFragmentTestEnable{ representativeFragmentTestEnable_ }
{
}
@@ -95177,11 +95669,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , storageBuffers( storageBuffers_ )
- , uniformBuffers( uniformBuffers_ )
- , vertexInputs( vertexInputs_ )
- , images( images_ )
+ : pNext{ pNext_ }
+ , storageBuffers{ storageBuffers_ }
+ , uniformBuffers{ uniformBuffers_ }
+ , vertexInputs{ vertexInputs_ }
+ , images{ images_ }
{
}
@@ -95308,9 +95800,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {},
VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampleLocationsEnable( sampleLocationsEnable_ )
- , sampleLocationsInfo( sampleLocationsInfo_ )
+ : pNext{ pNext_ }
+ , sampleLocationsEnable{ sampleLocationsEnable_ }
+ , sampleLocationsInfo{ sampleLocationsInfo_ }
{
}
@@ -95420,9 +95912,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineShaderStageModuleIdentifierCreateInfoEXT( uint32_t identifierSize_ = {},
const uint8_t * pIdentifier_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , identifierSize( identifierSize_ )
- , pIdentifier( pIdentifier_ )
+ : pNext{ pNext_ }
+ , identifierSize{ identifierSize_ }
+ , pIdentifier{ pIdentifier_ }
{
}
@@ -95545,9 +96037,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
PipelineShaderStageNodeCreateInfoAMDX( const char * pName_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pName( pName_ )
- , index( index_ )
+ : pNext{ pNext_ }
+ , pName{ pName_ }
+ , index{ index_ }
{
}
@@ -95659,8 +96151,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfo( uint32_t requiredSubgroupSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , requiredSubgroupSize( requiredSubgroupSize_ )
+ : pNext{ pNext_ }
+ , requiredSubgroupSize{ requiredSubgroupSize_ }
{
}
@@ -95748,8 +96240,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(
VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , domainOrigin( domainOrigin_ )
+ : pNext{ pNext_ }
+ , domainOrigin{ domainOrigin_ }
{
}
@@ -95845,8 +96337,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionKHR( uint32_t binding_ = {}, uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
- : binding( binding_ )
- , divisor( divisor_ )
+ : binding{ binding_ }
+ , divisor{ divisor_ }
{
}
@@ -95939,9 +96431,9 @@ namespace VULKAN_HPP_NAMESPACE
PipelineVertexInputDivisorStateCreateInfoKHR( uint32_t vertexBindingDivisorCount_ = {},
const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR * pVertexBindingDivisors_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , vertexBindingDivisorCount( vertexBindingDivisorCount_ )
- , pVertexBindingDivisors( pVertexBindingDivisors_ )
+ : pNext{ pNext_ }
+ , vertexBindingDivisorCount{ vertexBindingDivisorCount_ }
+ , pVertexBindingDivisors{ pVertexBindingDivisors_ }
{
}
@@ -96077,10 +96569,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t customSampleOrderCount_ = {},
const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampleOrderType( sampleOrderType_ )
- , customSampleOrderCount( customSampleOrderCount_ )
- , pCustomSampleOrders( pCustomSampleOrders_ )
+ : pNext{ pNext_ }
+ , sampleOrderType{ sampleOrderType_ }
+ , customSampleOrderCount{ customSampleOrderCount_ }
+ , pCustomSampleOrders{ pCustomSampleOrders_ }
{
}
@@ -96223,8 +96715,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PipelineViewportDepthClipControlCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , negativeOneToOne( negativeOneToOne_ )
+ : pNext{ pNext_ }
+ , negativeOneToOne{ negativeOneToOne_ }
{
}
@@ -96323,9 +96815,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = {},
const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , exclusiveScissorCount( exclusiveScissorCount_ )
- , pExclusiveScissors( pExclusiveScissors_ )
+ : pNext{ pNext_ }
+ , exclusiveScissorCount{ exclusiveScissorCount_ }
+ , pExclusiveScissors{ pExclusiveScissors_ }
{
}
@@ -96447,8 +96939,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = {},
const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT
- : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
- , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
+ : shadingRatePaletteEntryCount{ shadingRatePaletteEntryCount_ }
+ , pShadingRatePaletteEntries{ pShadingRatePaletteEntries_ }
{
}
@@ -96560,10 +97052,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t viewportCount_ = {},
const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , shadingRateImageEnable( shadingRateImageEnable_ )
- , viewportCount( viewportCount_ )
- , pShadingRatePalettes( pShadingRatePalettes_ )
+ : pNext{ pNext_ }
+ , shadingRateImageEnable{ shadingRateImageEnable_ }
+ , viewportCount{ viewportCount_ }
+ , pShadingRatePalettes{ pShadingRatePalettes_ }
{
}
@@ -96705,10 +97197,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT
- : x( x_ )
- , y( y_ )
- , z( z_ )
- , w( w_ )
+ : x{ x_ }
+ , y{ y_ }
+ , z{ z_ }
+ , w{ w_ }
{
}
@@ -96813,10 +97305,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t viewportCount_ = {},
const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , viewportCount( viewportCount_ )
- , pViewportSwizzles( pViewportSwizzles_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , viewportCount{ viewportCount_ }
+ , pViewportSwizzles{ pViewportSwizzles_ }
{
}
@@ -96949,8 +97441,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {}, float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT
- : xcoeff( xcoeff_ )
- , ycoeff( ycoeff_ )
+ : xcoeff{ xcoeff_ }
+ , ycoeff{ ycoeff_ }
{
}
@@ -97038,10 +97530,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t viewportCount_ = {},
const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , viewportWScalingEnable( viewportWScalingEnable_ )
- , viewportCount( viewportCount_ )
- , pViewportWScalings( pViewportWScalings_ )
+ : pNext{ pNext_ }
+ , viewportWScalingEnable{ viewportWScalingEnable_ }
+ , viewportCount{ viewportCount_ }
+ , pViewportWScalings{ pViewportWScalings_ }
{
}
@@ -97181,8 +97673,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , frameToken( frameToken_ )
+ : pNext{ pNext_ }
+ , frameToken{ frameToken_ }
{
}
@@ -97284,9 +97776,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PresentIdKHR( uint32_t swapchainCount_ = {}, const uint64_t * pPresentIds_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pPresentIds( pPresentIds_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pPresentIds{ pPresentIds_ }
{
}
@@ -97407,13 +97899,13 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pImageIndices_ = {},
VULKAN_HPP_NAMESPACE::Result * pResults_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreCount( waitSemaphoreCount_ )
- , pWaitSemaphores( pWaitSemaphores_ )
- , swapchainCount( swapchainCount_ )
- , pSwapchains( pSwapchains_ )
- , pImageIndices( pImageIndices_ )
- , pResults( pResults_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreCount{ waitSemaphoreCount_ }
+ , pWaitSemaphores{ pWaitSemaphores_ }
+ , swapchainCount{ swapchainCount_ }
+ , pSwapchains{ pSwapchains_ }
+ , pImageIndices{ pImageIndices_ }
+ , pResults{ pResults_ }
{
}
@@ -97620,9 +98112,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT
- : offset( offset_ )
- , extent( extent_ )
- , layer( layer_ )
+ : offset{ offset_ }
+ , extent{ extent_ }
+ , layer{ layer_ }
{
}
@@ -97713,8 +98205,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PresentRegionKHR( uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
- : rectangleCount( rectangleCount_ )
- , pRectangles( pRectangles_ )
+ : rectangleCount{ rectangleCount_ }
+ , pRectangles{ pRectangles_ }
{
}
@@ -97818,9 +98310,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PresentRegionsKHR( uint32_t swapchainCount_ = {},
const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -97934,8 +98426,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT
- : presentID( presentID_ )
- , desiredPresentTime( desiredPresentTime_ )
+ : presentID{ presentID_ }
+ , desiredPresentTime{ desiredPresentTime_ }
{
}
@@ -98022,9 +98514,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {},
const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pTimes( pTimes_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pTimes{ pTimes_ }
{
}
@@ -98145,8 +98637,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -98243,8 +98735,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , protectedSubmit( protectedSubmit_ )
+ : pNext{ pNext_ }
+ , protectedSubmit{ protectedSubmit_ }
{
}
@@ -98343,12 +98835,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t size_ = {},
const void * pValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , layout( layout_ )
- , stageFlags( stageFlags_ )
- , offset( offset_ )
- , size( size_ )
- , pValues( pValues_ )
+ : pNext{ pNext_ }
+ , layout{ layout_ }
+ , stageFlags{ stageFlags_ }
+ , offset{ offset_ }
+ , size{ size_ }
+ , pValues{ pValues_ }
{
}
@@ -98513,15 +99005,15 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ = {},
const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dstSet( dstSet_ )
- , dstBinding( dstBinding_ )
- , dstArrayElement( dstArrayElement_ )
- , descriptorCount( descriptorCount_ )
- , descriptorType( descriptorType_ )
- , pImageInfo( pImageInfo_ )
- , pBufferInfo( pBufferInfo_ )
- , pTexelBufferView( pTexelBufferView_ )
+ : pNext{ pNext_ }
+ , dstSet{ dstSet_ }
+ , dstBinding{ dstBinding_ }
+ , dstArrayElement{ dstArrayElement_ }
+ , descriptorCount{ descriptorCount_ }
+ , descriptorType{ descriptorType_ }
+ , pImageInfo{ pImageInfo_ }
+ , pBufferInfo{ pBufferInfo_ }
+ , pTexelBufferView{ pTexelBufferView_ }
{
}
@@ -98741,12 +99233,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t descriptorWriteCount_ = {},
const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stageFlags( stageFlags_ )
- , layout( layout_ )
- , set( set_ )
- , descriptorWriteCount( descriptorWriteCount_ )
- , pDescriptorWrites( pDescriptorWrites_ )
+ : pNext{ pNext_ }
+ , stageFlags{ stageFlags_ }
+ , layout{ layout_ }
+ , set{ set_ }
+ , descriptorWriteCount{ descriptorWriteCount_ }
+ , pDescriptorWrites{ pDescriptorWrites_ }
{
}
@@ -98907,11 +99399,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t set_ = {},
const void * pData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , descriptorUpdateTemplate( descriptorUpdateTemplate_ )
- , layout( layout_ )
- , set( set_ )
- , pData( pData_ )
+ : pNext{ pNext_ }
+ , descriptorUpdateTemplate{ descriptorUpdateTemplate_ }
+ , layout{ layout_ }
+ , set{ set_ }
+ , pData{ pData_ }
{
}
@@ -99034,8 +99526,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( void * pQueriedLowLatencyData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pQueriedLowLatencyData( pQueriedLowLatencyData_ )
+ : pNext{ pNext_ }
+ , pQueriedLowLatencyData{ pQueriedLowLatencyData_ }
{
}
@@ -99134,11 +99626,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queryCount_ = {},
VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , queryType( queryType_ )
- , queryCount( queryCount_ )
- , pipelineStatistics( pipelineStatistics_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , queryType{ queryType_ }
+ , queryCount{ queryCount_ }
+ , pipelineStatistics{ pipelineStatistics_ }
{
}
@@ -99263,10 +99755,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t counterIndexCount_ = {},
const uint32_t * pCounterIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queueFamilyIndex( queueFamilyIndex_ )
- , counterIndexCount( counterIndexCount_ )
- , pCounterIndices( pCounterIndices_ )
+ : pNext{ pNext_ }
+ , queueFamilyIndex{ queueFamilyIndex_ }
+ , counterIndexCount{ counterIndexCount_ }
+ , pCounterIndices{ pCounterIndices_ }
{
}
@@ -99400,8 +99892,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(
VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , performanceCountersSampling( performanceCountersSampling_ )
+ : pNext{ pNext_ }
+ , performanceCountersSampling{ performanceCountersSampling_ }
{
}
@@ -99500,8 +99992,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , encodeFeedbackFlags( encodeFeedbackFlags_ )
+ : pNext{ pNext_ }
+ , encodeFeedbackFlags{ encodeFeedbackFlags_ }
{
}
@@ -99598,8 +100090,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
+ : pNext{ pNext_ }
+ , checkpointExecutionStageMask{ checkpointExecutionStageMask_ }
{
}
@@ -99681,8 +100173,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
+ : pNext{ pNext_ }
+ , checkpointExecutionStageMask{ checkpointExecutionStageMask_ }
{
}
@@ -99782,9 +100274,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } },
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , priorityCount( priorityCount_ )
- , priorities( priorities_ )
+ : pNext{ pNext_ }
+ , priorityCount{ priorityCount_ }
+ , priorities{ priorities_ }
{
}
@@ -99893,10 +100385,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t queueCount_ = {},
uint32_t timestampValidBits_ = {},
VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
- : queueFlags( queueFlags_ )
- , queueCount( queueCount_ )
- , timestampValidBits( timestampValidBits_ )
- , minImageTransferGranularity( minImageTransferGranularity_ )
+ : queueFlags{ queueFlags_ }
+ , queueCount{ queueCount_ }
+ , timestampValidBits{ timestampValidBits_ }
+ , minImageTransferGranularity{ minImageTransferGranularity_ }
{
}
@@ -99974,8 +100466,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queueFamilyProperties( queueFamilyProperties_ )
+ : pNext{ pNext_ }
+ , queueFamilyProperties{ queueFamilyProperties_ }
{
}
@@ -100059,8 +100551,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queryResultStatusSupport( queryResultStatusSupport_ )
+ : pNext{ pNext_ }
+ , queryResultStatusSupport{ queryResultStatusSupport_ }
{
}
@@ -100142,8 +100634,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoCodecOperations( videoCodecOperations_ )
+ : pNext{ pNext_ }
+ , videoCodecOperations{ videoCodecOperations_ }
{
}
@@ -100231,13 +100723,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
const void * pShaderGroupCaptureReplayHandle_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , generalShader( generalShader_ )
- , closestHitShader( closestHitShader_ )
- , anyHitShader( anyHitShader_ )
- , intersectionShader( intersectionShader_ )
- , pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , generalShader{ generalShader_ }
+ , closestHitShader{ closestHitShader_ }
+ , anyHitShader{ anyHitShader_ }
+ , intersectionShader{ intersectionShader_ }
+ , pShaderGroupCaptureReplayHandle{ pShaderGroupCaptureReplayHandle_ }
{
}
@@ -100379,9 +100871,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( uint32_t maxPipelineRayPayloadSize_ = {},
uint32_t maxPipelineRayHitAttributeSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ )
- , maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ )
+ : pNext{ pNext_ }
+ , maxPipelineRayPayloadSize{ maxPipelineRayPayloadSize_ }
+ , maxPipelineRayHitAttributeSize{ maxPipelineRayHitAttributeSize_ }
{
}
@@ -100497,19 +100989,19 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
int32_t basePipelineIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stageCount( stageCount_ )
- , pStages( pStages_ )
- , groupCount( groupCount_ )
- , pGroups( pGroups_ )
- , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ )
- , pLibraryInfo( pLibraryInfo_ )
- , pLibraryInterface( pLibraryInterface_ )
- , pDynamicState( pDynamicState_ )
- , layout( layout_ )
- , basePipelineHandle( basePipelineHandle_ )
- , basePipelineIndex( basePipelineIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stageCount{ stageCount_ }
+ , pStages{ pStages_ }
+ , groupCount{ groupCount_ }
+ , pGroups{ pGroups_ }
+ , maxPipelineRayRecursionDepth{ maxPipelineRayRecursionDepth_ }
+ , pLibraryInfo{ pLibraryInfo_ }
+ , pLibraryInterface{ pLibraryInterface_ }
+ , pDynamicState{ pDynamicState_ }
+ , layout{ layout_ }
+ , basePipelineHandle{ basePipelineHandle_ }
+ , basePipelineIndex{ basePipelineIndex_ }
{
}
@@ -100771,12 +101263,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , type( type_ )
- , generalShader( generalShader_ )
- , closestHitShader( closestHitShader_ )
- , anyHitShader( anyHitShader_ )
- , intersectionShader( intersectionShader_ )
+ : pNext{ pNext_ }
+ , type{ type_ }
+ , generalShader{ generalShader_ }
+ , closestHitShader{ closestHitShader_ }
+ , anyHitShader{ anyHitShader_ }
+ , intersectionShader{ intersectionShader_ }
{
}
@@ -100915,16 +101407,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
int32_t basePipelineIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stageCount( stageCount_ )
- , pStages( pStages_ )
- , groupCount( groupCount_ )
- , pGroups( pGroups_ )
- , maxRecursionDepth( maxRecursionDepth_ )
- , layout( layout_ )
- , basePipelineHandle( basePipelineHandle_ )
- , basePipelineIndex( basePipelineIndex_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stageCount{ stageCount_ }
+ , pStages{ pStages_ }
+ , groupCount{ groupCount_ }
+ , pGroups{ pGroups_ }
+ , maxRecursionDepth{ maxRecursionDepth_ }
+ , layout{ layout_ }
+ , basePipelineHandle{ basePipelineHandle_ }
+ , basePipelineIndex{ basePipelineIndex_ }
{
}
@@ -101129,7 +101621,7 @@ namespace VULKAN_HPP_NAMESPACE
using NativeType = VkRefreshCycleDurationGOOGLE;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT : refreshDuration( refreshDuration_ ) {}
+ VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT : refreshDuration{ refreshDuration_ } {}
VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -101203,10 +101695,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t imageIndexCount_ = {},
const uint32_t * pImageIndices_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchain( swapchain_ )
- , imageIndexCount( imageIndexCount_ )
- , pImageIndices( pImageIndices_ )
+ : pNext{ pNext_ }
+ , swapchain{ swapchain_ }
+ , imageIndexCount{ imageIndexCount_ }
+ , pImageIndices{ pImageIndices_ }
{
}
@@ -101340,9 +101832,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentCount( attachmentCount_ )
- , pAttachments( pAttachments_ )
+ : pNext{ pNext_ }
+ , attachmentCount{ attachmentCount_ }
+ , pAttachments{ pAttachments_ }
{
}
@@ -101469,12 +101961,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t clearValueCount_ = {},
const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , renderPass( renderPass_ )
- , framebuffer( framebuffer_ )
- , renderArea( renderArea_ )
- , clearValueCount( clearValueCount_ )
- , pClearValues( pClearValues_ )
+ : pNext{ pNext_ }
+ , renderPass{ renderPass_ }
+ , framebuffer{ framebuffer_ }
+ , renderArea{ renderArea_ }
+ , clearValueCount{ clearValueCount_ }
+ , pClearValues{ pClearValues_ }
{
}
@@ -101635,16 +102127,16 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {},
uint32_t preserveAttachmentCount_ = {},
const uint32_t * pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
- : flags( flags_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , inputAttachmentCount( inputAttachmentCount_ )
- , pInputAttachments( pInputAttachments_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachments( pColorAttachments_ )
- , pResolveAttachments( pResolveAttachments_ )
- , pDepthStencilAttachment( pDepthStencilAttachment_ )
- , preserveAttachmentCount( preserveAttachmentCount_ )
- , pPreserveAttachments( pPreserveAttachments_ )
+ : flags{ flags_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , inputAttachmentCount{ inputAttachmentCount_ }
+ , pInputAttachments{ pInputAttachments_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachments{ pColorAttachments_ }
+ , pResolveAttachments{ pResolveAttachments_ }
+ , pDepthStencilAttachment{ pDepthStencilAttachment_ }
+ , preserveAttachmentCount{ preserveAttachmentCount_ }
+ , pPreserveAttachments{ pPreserveAttachments_ }
{
}
@@ -101886,13 +102378,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT
- : srcSubpass( srcSubpass_ )
- , dstSubpass( dstSubpass_ )
- , srcStageMask( srcStageMask_ )
- , dstStageMask( dstStageMask_ )
- , srcAccessMask( srcAccessMask_ )
- , dstAccessMask( dstAccessMask_ )
- , dependencyFlags( dependencyFlags_ )
+ : srcSubpass{ srcSubpass_ }
+ , dstSubpass{ dstSubpass_ }
+ , srcStageMask{ srcStageMask_ }
+ , dstStageMask{ dstStageMask_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , dependencyFlags{ dependencyFlags_ }
{
}
@@ -102027,14 +102519,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t dependencyCount_ = {},
const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , attachmentCount( attachmentCount_ )
- , pAttachments( pAttachments_ )
- , subpassCount( subpassCount_ )
- , pSubpasses( pSubpasses_ )
- , dependencyCount( dependencyCount_ )
- , pDependencies( pDependencies_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , attachmentCount{ attachmentCount_ }
+ , pAttachments{ pAttachments_ }
+ , subpassCount{ subpassCount_ }
+ , pSubpasses{ pSubpasses_ }
+ , dependencyCount{ dependencyCount_ }
+ , pDependencies{ pDependencies_ }
{
}
@@ -102240,18 +102732,18 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t preserveAttachmentCount_ = {},
const uint32_t * pPreserveAttachments_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , pipelineBindPoint( pipelineBindPoint_ )
- , viewMask( viewMask_ )
- , inputAttachmentCount( inputAttachmentCount_ )
- , pInputAttachments( pInputAttachments_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachments( pColorAttachments_ )
- , pResolveAttachments( pResolveAttachments_ )
- , pDepthStencilAttachment( pDepthStencilAttachment_ )
- , preserveAttachmentCount( preserveAttachmentCount_ )
- , pPreserveAttachments( pPreserveAttachments_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , pipelineBindPoint{ pipelineBindPoint_ }
+ , viewMask{ viewMask_ }
+ , inputAttachmentCount{ inputAttachmentCount_ }
+ , pInputAttachments{ pInputAttachments_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachments{ pColorAttachments_ }
+ , pResolveAttachments{ pResolveAttachments_ }
+ , pDepthStencilAttachment{ pDepthStencilAttachment_ }
+ , preserveAttachmentCount{ preserveAttachmentCount_ }
+ , pPreserveAttachments{ pPreserveAttachments_ }
{
}
@@ -102533,15 +103025,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
int32_t viewOffset_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcSubpass( srcSubpass_ )
- , dstSubpass( dstSubpass_ )
- , srcStageMask( srcStageMask_ )
- , dstStageMask( dstStageMask_ )
- , srcAccessMask( srcAccessMask_ )
- , dstAccessMask( dstAccessMask_ )
- , dependencyFlags( dependencyFlags_ )
- , viewOffset( viewOffset_ )
+ : pNext{ pNext_ }
+ , srcSubpass{ srcSubpass_ }
+ , dstSubpass{ dstSubpass_ }
+ , srcStageMask{ srcStageMask_ }
+ , dstStageMask{ dstStageMask_ }
+ , srcAccessMask{ srcAccessMask_ }
+ , dstAccessMask{ dstAccessMask_ }
+ , dependencyFlags{ dependencyFlags_ }
+ , viewOffset{ viewOffset_ }
{
}
@@ -102704,16 +103196,16 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t correlatedViewMaskCount_ = {},
const uint32_t * pCorrelatedViewMasks_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , attachmentCount( attachmentCount_ )
- , pAttachments( pAttachments_ )
- , subpassCount( subpassCount_ )
- , pSubpasses( pSubpasses_ )
- , dependencyCount( dependencyCount_ )
- , pDependencies( pDependencies_ )
- , correlatedViewMaskCount( correlatedViewMaskCount_ )
- , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , attachmentCount{ attachmentCount_ }
+ , pAttachments{ pAttachments_ }
+ , subpassCount{ subpassCount_ }
+ , pSubpasses{ pSubpasses_ }
+ , dependencyCount{ dependencyCount_ }
+ , pDependencies{ pDependencies_ }
+ , correlatedViewMaskCount{ correlatedViewMaskCount_ }
+ , pCorrelatedViewMasks{ pCorrelatedViewMasks_ }
{
}
@@ -102950,8 +103442,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , disallowMerging( disallowMerging_ )
+ : pNext{ pNext_ }
+ , disallowMerging{ disallowMerging_ }
{
}
@@ -103043,7 +103535,7 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( uint32_t postMergeSubpassCount_ = {} ) VULKAN_HPP_NOEXCEPT
- : postMergeSubpassCount( postMergeSubpassCount_ )
+ : postMergeSubpassCount{ postMergeSubpassCount_ }
{
}
@@ -103117,8 +103609,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pRenderPassFeedback( pRenderPassFeedback_ )
+ : pNext{ pNext_ }
+ , pRenderPassFeedback{ pRenderPassFeedback_ }
{
}
@@ -103215,8 +103707,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
+ : pNext{ pNext_ }
+ , fragmentDensityMapAttachment{ fragmentDensityMapAttachment_ }
{
}
@@ -103314,9 +103806,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = {},
const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , aspectReferenceCount( aspectReferenceCount_ )
- , pAspectReferences( pAspectReferences_ )
+ : pNext{ pNext_ }
+ , aspectReferenceCount{ aspectReferenceCount_ }
+ , pAspectReferences{ pAspectReferences_ }
{
}
@@ -103450,13 +103942,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t correlationMaskCount_ = {},
const uint32_t * pCorrelationMasks_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subpassCount( subpassCount_ )
- , pViewMasks( pViewMasks_ )
- , dependencyCount( dependencyCount_ )
- , pViewOffsets( pViewOffsets_ )
- , correlationMaskCount( correlationMaskCount_ )
- , pCorrelationMasks( pCorrelationMasks_ )
+ : pNext{ pNext_ }
+ , subpassCount{ subpassCount_ }
+ , pViewMasks{ pViewMasks_ }
+ , dependencyCount{ dependencyCount_ }
+ , pViewOffsets{ pViewOffsets_ }
+ , correlationMaskCount{ correlationMaskCount_ }
+ , pCorrelationMasks{ pCorrelationMasks_ }
{
}
@@ -103639,8 +104131,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( uint32_t subpassIndex_ = {},
VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
- : subpassIndex( subpassIndex_ )
- , sampleLocationsInfo( sampleLocationsInfo_ )
+ : subpassIndex{ subpassIndex_ }
+ , sampleLocationsInfo{ sampleLocationsInfo_ }
{
}
@@ -103734,11 +104226,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t postSubpassSampleLocationsCount_ = {},
const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
- , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
- , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
- , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
+ : pNext{ pNext_ }
+ , attachmentInitialSampleLocationsCount{ attachmentInitialSampleLocationsCount_ }
+ , pAttachmentInitialSampleLocations{ pAttachmentInitialSampleLocations_ }
+ , postSubpassSampleLocationsCount{ postSubpassSampleLocationsCount_ }
+ , pPostSubpassSampleLocations{ pPostSubpassSampleLocations_ }
{
}
@@ -103902,8 +104394,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR RenderPassStripeInfoARM( VULKAN_HPP_NAMESPACE::Rect2D stripeArea_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stripeArea( stripeArea_ )
+ : pNext{ pNext_ }
+ , stripeArea{ stripeArea_ }
{
}
@@ -104000,9 +104492,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderPassStripeBeginInfoARM( uint32_t stripeInfoCount_ = {},
const VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM * pStripeInfos_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stripeInfoCount( stripeInfoCount_ )
- , pStripeInfos( pStripeInfos_ )
+ : pNext{ pNext_ }
+ , stripeInfoCount{ stripeInfoCount_ }
+ , pStripeInfos{ pStripeInfos_ }
{
}
@@ -104128,11 +104620,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ = {},
uint32_t deviceIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , value( value_ )
- , stageMask( stageMask_ )
- , deviceIndex( deviceIndex_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , value{ value_ }
+ , stageMask{ stageMask_ }
+ , deviceIndex{ deviceIndex_ }
{
}
@@ -104257,9 +104749,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderPassStripeSubmitInfoARM( uint32_t stripeSemaphoreInfoCount_ = {},
const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pStripeSemaphoreInfos_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stripeSemaphoreInfoCount( stripeSemaphoreInfoCount_ )
- , pStripeSemaphoreInfos( pStripeSemaphoreInfos_ )
+ : pNext{ pNext_ }
+ , stripeSemaphoreInfoCount{ stripeSemaphoreInfoCount_ }
+ , pStripeSemaphoreInfos{ pStripeSemaphoreInfos_ }
{
}
@@ -104383,9 +104875,9 @@ namespace VULKAN_HPP_NAMESPACE
RenderPassSubpassFeedbackInfoEXT( VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus_ = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged,
std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
uint32_t postMergeIndex_ = {} ) VULKAN_HPP_NOEXCEPT
- : subpassMergeStatus( subpassMergeStatus_ )
- , description( description_ )
- , postMergeIndex( postMergeIndex_ )
+ : subpassMergeStatus{ subpassMergeStatus_ }
+ , description{ description_ }
+ , postMergeIndex{ postMergeIndex_ }
{
}
@@ -104483,8 +104975,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pSubpassFeedback( pSubpassFeedback_ )
+ : pNext{ pNext_ }
+ , pSubpassFeedback{ pSubpassFeedback_ }
{
}
@@ -104582,8 +105074,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(
VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , transform( transform_ )
+ : pNext{ pNext_ }
+ , transform{ transform_ }
{
}
@@ -104683,12 +105175,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , viewMask( viewMask_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentFormats( pColorAttachmentFormats_ )
- , depthAttachmentFormat( depthAttachmentFormat_ )
- , stencilAttachmentFormat( stencilAttachmentFormat_ )
+ : pNext{ pNext_ }
+ , viewMask{ viewMask_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentFormats{ pColorAttachmentFormats_ }
+ , depthAttachmentFormat{ depthAttachmentFormat_ }
+ , stencilAttachmentFormat{ stencilAttachmentFormat_ }
{
}
@@ -104854,15 +105346,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageView( imageView_ )
- , imageLayout( imageLayout_ )
- , resolveMode( resolveMode_ )
- , resolveImageView( resolveImageView_ )
- , resolveImageLayout( resolveImageLayout_ )
- , loadOp( loadOp_ )
- , storeOp( storeOp_ )
- , clearValue( clearValue_ )
+ : pNext{ pNext_ }
+ , imageView{ imageView_ }
+ , imageLayout{ imageLayout_ }
+ , resolveMode{ resolveMode_ }
+ , resolveImageView{ resolveImageView_ }
+ , resolveImageLayout{ resolveImageLayout_ }
+ , loadOp{ loadOp_ }
+ , storeOp{ storeOp_ }
+ , clearValue{ clearValue_ }
{
}
@@ -105001,9 +105493,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR RenderingAttachmentLocationInfoKHR( uint32_t colorAttachmentCount_ = {},
const uint32_t * pColorAttachmentLocations_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentLocations( pColorAttachmentLocations_ )
+ : pNext{ pNext_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentLocations{ pColorAttachmentLocations_ }
{
}
@@ -105129,9 +105621,9 @@ namespace VULKAN_HPP_NAMESPACE
RenderingFragmentDensityMapAttachmentInfoEXT( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageView( imageView_ )
- , imageLayout( imageLayout_ )
+ : pNext{ pNext_ }
+ , imageView{ imageView_ }
+ , imageLayout{ imageLayout_ }
{
}
@@ -105240,10 +105732,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , imageView( imageView_ )
- , imageLayout( imageLayout_ )
- , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
+ : pNext{ pNext_ }
+ , imageView{ imageView_ }
+ , imageLayout{ imageLayout_ }
+ , shadingRateAttachmentTexelSize{ shadingRateAttachmentTexelSize_ }
{
}
@@ -105367,15 +105859,15 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {},
const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , renderArea( renderArea_ )
- , layerCount( layerCount_ )
- , viewMask( viewMask_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachments( pColorAttachments_ )
- , pDepthAttachment( pDepthAttachment_ )
- , pStencilAttachment( pStencilAttachment_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , renderArea{ renderArea_ }
+ , layerCount{ layerCount_ }
+ , viewMask{ viewMask_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachments{ pColorAttachments_ }
+ , pDepthAttachment{ pDepthAttachment_ }
+ , pStencilAttachment{ pStencilAttachment_ }
{
}
@@ -105566,11 +106058,11 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pDepthInputAttachmentIndex_ = {},
const uint32_t * pStencilInputAttachmentIndex_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , colorAttachmentCount( colorAttachmentCount_ )
- , pColorAttachmentInputIndices( pColorAttachmentInputIndices_ )
- , pDepthInputAttachmentIndex( pDepthInputAttachmentIndex_ )
- , pStencilInputAttachmentIndex( pStencilInputAttachmentIndex_ )
+ : pNext{ pNext_ }
+ , colorAttachmentCount{ colorAttachmentCount_ }
+ , pColorAttachmentInputIndices{ pColorAttachmentInputIndices_ }
+ , pDepthInputAttachmentIndex{ pDepthInputAttachmentIndex_ }
+ , pStencilInputAttachmentIndex{ pStencilInputAttachmentIndex_ }
{
}
@@ -105726,13 +106218,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t regionCount_ = {},
const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , srcImage( srcImage_ )
- , srcImageLayout( srcImageLayout_ )
- , dstImage( dstImage_ )
- , dstImageLayout( dstImageLayout_ )
- , regionCount( regionCount_ )
- , pRegions( pRegions_ )
+ : pNext{ pNext_ }
+ , srcImage{ srcImage_ }
+ , srcImageLayout{ srcImageLayout_ }
+ , dstImage{ dstImage_ }
+ , dstImageLayout{ dstImageLayout_ }
+ , regionCount{ regionCount_ }
+ , pRegions{ pRegions_ }
{
}
@@ -105900,9 +106392,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D windowExtent_ = {},
VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , windowExtent( windowExtent_ )
- , windowCompareMode( windowCompareMode_ )
+ : pNext{ pNext_ }
+ , windowExtent{ windowExtent_ }
+ , windowCompareMode{ windowCompareMode_ }
{
}
@@ -106010,9 +106502,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SamplerBorderColorComponentMappingCreateInfoEXT( VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
VULKAN_HPP_NAMESPACE::Bool32 srgb_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , components( components_ )
- , srgb( srgb_ )
+ : pNext{ pNext_ }
+ , components{ components_ }
+ , srgb{ srgb_ }
{
}
@@ -106119,8 +106611,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SamplerCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sampler( sampler_ )
+ : pNext{ pNext_ }
+ , sampler{ sampler_ }
{
}
@@ -106231,23 +106723,23 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack,
VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , magFilter( magFilter_ )
- , minFilter( minFilter_ )
- , mipmapMode( mipmapMode_ )
- , addressModeU( addressModeU_ )
- , addressModeV( addressModeV_ )
- , addressModeW( addressModeW_ )
- , mipLodBias( mipLodBias_ )
- , anisotropyEnable( anisotropyEnable_ )
- , maxAnisotropy( maxAnisotropy_ )
- , compareEnable( compareEnable_ )
- , compareOp( compareOp_ )
- , minLod( minLod_ )
- , maxLod( maxLod_ )
- , borderColor( borderColor_ )
- , unnormalizedCoordinates( unnormalizedCoordinates_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , magFilter{ magFilter_ }
+ , minFilter{ minFilter_ }
+ , mipmapMode{ mipmapMode_ }
+ , addressModeU{ addressModeU_ }
+ , addressModeV{ addressModeV_ }
+ , addressModeW{ addressModeW_ }
+ , mipLodBias{ mipLodBias_ }
+ , anisotropyEnable{ anisotropyEnable_ }
+ , maxAnisotropy{ maxAnisotropy_ }
+ , compareEnable{ compareEnable_ }
+ , compareOp{ compareOp_ }
+ , minLod{ minLod_ }
+ , maxLod{ maxLod_ }
+ , borderColor{ borderColor_ }
+ , unnormalizedCoordinates{ unnormalizedCoordinates_ }
{
}
@@ -106484,8 +106976,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
SamplerCubicWeightsCreateInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , cubicWeights( cubicWeights_ )
+ : pNext{ pNext_ }
+ , cubicWeights{ cubicWeights_ }
{
}
@@ -106583,9 +107075,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {},
VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , customBorderColor( customBorderColor_ )
- , format( format_ )
+ : pNext{ pNext_ }
+ , customBorderColor{ customBorderColor_ }
+ , format{ format_ }
{
}
@@ -106675,8 +107167,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
SamplerReductionModeCreateInfo( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , reductionMode( reductionMode_ )
+ : pNext{ pNext_ }
+ , reductionMode{ reductionMode_ }
{
}
@@ -106782,15 +107274,15 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , ycbcrModel( ycbcrModel_ )
- , ycbcrRange( ycbcrRange_ )
- , components( components_ )
- , xChromaOffset( xChromaOffset_ )
- , yChromaOffset( yChromaOffset_ )
- , chromaFilter( chromaFilter_ )
- , forceExplicitReconstruction( forceExplicitReconstruction_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , ycbcrModel{ ycbcrModel_ }
+ , ycbcrRange{ ycbcrRange_ }
+ , components{ components_ }
+ , xChromaOffset{ xChromaOffset_ }
+ , yChromaOffset{ yChromaOffset_ }
+ , chromaFilter{ chromaFilter_ }
+ , forceExplicitReconstruction{ forceExplicitReconstruction_ }
{
}
@@ -106951,8 +107443,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
+ : pNext{ pNext_ }
+ , combinedImageSamplerDescriptorCount{ combinedImageSamplerDescriptorCount_ }
{
}
@@ -107036,8 +107528,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , conversion( conversion_ )
+ : pNext{ pNext_ }
+ , conversion{ conversion_ }
{
}
@@ -107136,9 +107628,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ = {},
VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , enableYDegamma( enableYDegamma_ )
- , enableCbCrDegamma( enableCbCrDegamma_ )
+ : pNext{ pNext_ }
+ , enableYDegamma{ enableYDegamma_ }
+ , enableCbCrDegamma{ enableCbCrDegamma_ }
{
}
@@ -107254,16 +107746,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , externalFormat( externalFormat_ )
- , screenUsage( screenUsage_ )
- , formatFeatures( formatFeatures_ )
- , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
- , suggestedYcbcrModel( suggestedYcbcrModel_ )
- , suggestedYcbcrRange( suggestedYcbcrRange_ )
- , suggestedXChromaOffset( suggestedXChromaOffset_ )
- , suggestedYChromaOffset( suggestedYChromaOffset_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , externalFormat{ externalFormat_ }
+ , screenUsage{ screenUsage_ }
+ , formatFeatures{ formatFeatures_ }
+ , samplerYcbcrConversionComponents{ samplerYcbcrConversionComponents_ }
+ , suggestedYcbcrModel{ suggestedYcbcrModel_ }
+ , suggestedYcbcrRange{ suggestedYcbcrRange_ }
+ , suggestedXChromaOffset{ suggestedXChromaOffset_ }
+ , suggestedYChromaOffset{ suggestedYChromaOffset_ }
{
}
@@ -107380,9 +107872,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
uint32_t memoryTypeBits_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , allocationSize( allocationSize_ )
- , memoryTypeBits( memoryTypeBits_ )
+ : pNext{ pNext_ }
+ , allocationSize{ allocationSize_ }
+ , memoryTypeBits{ memoryTypeBits_ }
{
}
@@ -107469,10 +107961,10 @@ namespace VULKAN_HPP_NAMESPACE
struct _screen_context * context_ = {},
struct _screen_window * window_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , context( context_ )
- , window( window_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , context{ context_ }
+ , window{ window_ }
{
}
@@ -107586,8 +108078,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -107684,9 +108176,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , handleType{ handleType_ }
{
}
@@ -107795,9 +108287,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , handleType{ handleType_ }
{
}
@@ -107908,9 +108400,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , handleType( handleType_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , handleType{ handleType_ }
{
}
@@ -108018,9 +108510,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphore( semaphore_ )
- , value( value_ )
+ : pNext{ pNext_ }
+ , semaphore{ semaphore_ }
+ , value{ value_ }
{
}
@@ -108125,9 +108617,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary,
uint64_t initialValue_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , semaphoreType( semaphoreType_ )
- , initialValue( initialValue_ )
+ : pNext{ pNext_ }
+ , semaphoreType{ semaphoreType_ }
+ , initialValue{ initialValue_ }
{
}
@@ -108235,11 +108727,11 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ = {},
const uint64_t * pValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , semaphoreCount( semaphoreCount_ )
- , pSemaphores( pSemaphores_ )
- , pValues( pValues_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , semaphoreCount{ semaphoreCount_ }
+ , pSemaphores{ pSemaphores_ }
+ , pValues{ pValues_ }
{
}
@@ -108407,13 +108899,13 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pBufferIndices_ = {},
const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stageFlags( stageFlags_ )
- , layout( layout_ )
- , firstSet( firstSet_ )
- , setCount( setCount_ )
- , pBufferIndices( pBufferIndices_ )
- , pOffsets( pOffsets_ )
+ : pNext{ pNext_ }
+ , stageFlags{ stageFlags_ }
+ , layout{ layout_ }
+ , firstSet{ firstSet_ }
+ , setCount{ setCount_ }
+ , pBufferIndices{ pBufferIndices_ }
+ , pOffsets{ pOffsets_ }
{
}
@@ -108600,9 +109092,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( uint64_t presentID_ = {},
VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentID( presentID_ )
- , marker( marker_ )
+ : pNext{ pNext_ }
+ , presentID{ presentID_ }
+ , marker{ marker_ }
{
}
@@ -108700,7 +109192,7 @@ namespace VULKAN_HPP_NAMESPACE
using NativeType = VkSetStateFlagsIndirectCommandNV;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT : data( data_ ) {}
+ VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT : data{ data_ } {}
VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -108791,19 +109283,19 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {},
const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , stage( stage_ )
- , nextStage( nextStage_ )
- , codeType( codeType_ )
- , codeSize( codeSize_ )
- , pCode( pCode_ )
- , pName( pName_ )
- , setLayoutCount( setLayoutCount_ )
- , pSetLayouts( pSetLayouts_ )
- , pushConstantRangeCount( pushConstantRangeCount_ )
- , pPushConstantRanges( pPushConstantRanges_ )
- , pSpecializationInfo( pSpecializationInfo_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , stage{ stage_ }
+ , nextStage{ nextStage_ }
+ , codeType{ codeType_ }
+ , codeSize{ codeSize_ }
+ , pCode{ pCode_ }
+ , pName{ pName_ }
+ , setLayoutCount{ setLayoutCount_ }
+ , pSetLayouts{ pSetLayouts_ }
+ , pushConstantRangeCount{ pushConstantRangeCount_ }
+ , pPushConstantRanges{ pPushConstantRanges_ }
+ , pSpecializationInfo{ pSpecializationInfo_ }
{
}
@@ -109097,10 +109589,10 @@ namespace VULKAN_HPP_NAMESPACE
size_t codeSize_ = {},
const uint32_t * pCode_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , codeSize( codeSize_ )
- , pCode( pCode_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , codeSize{ codeSize_ }
+ , pCode{ pCode_ }
{
}
@@ -109233,9 +109725,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( uint32_t identifierSize_ = {},
std::array<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const & identifier_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , identifierSize( identifierSize_ )
- , identifier( identifier_ )
+ : pNext{ pNext_ }
+ , identifierSize{ identifierSize_ }
+ , identifier{ identifier_ }
{
}
@@ -109342,8 +109834,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , validationCache( validationCache_ )
+ : pNext{ pNext_ }
+ , validationCache{ validationCache_ }
{
}
@@ -109440,11 +109932,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t ldsSizePerLocalWorkGroup_ = {},
size_t ldsUsageSizeInBytes_ = {},
size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT
- : numUsedVgprs( numUsedVgprs_ )
- , numUsedSgprs( numUsedSgprs_ )
- , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ )
- , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ )
- , scratchMemUsageInBytes( scratchMemUsageInBytes_ )
+ : numUsedVgprs{ numUsedVgprs_ }
+ , numUsedSgprs{ numUsedSgprs_ }
+ , ldsSizePerLocalWorkGroup{ ldsSizePerLocalWorkGroup_ }
+ , ldsUsageSizeInBytes{ ldsUsageSizeInBytes_ }
+ , scratchMemUsageInBytes{ scratchMemUsageInBytes_ }
{
}
@@ -109525,13 +110017,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t numAvailableVgprs_ = {},
uint32_t numAvailableSgprs_ = {},
std::array<uint32_t, 3> const & computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
- : shaderStageMask( shaderStageMask_ )
- , resourceUsage( resourceUsage_ )
- , numPhysicalVgprs( numPhysicalVgprs_ )
- , numPhysicalSgprs( numPhysicalSgprs_ )
- , numAvailableVgprs( numAvailableVgprs_ )
- , numAvailableSgprs( numAvailableSgprs_ )
- , computeWorkGroupSize( computeWorkGroupSize_ )
+ : shaderStageMask{ shaderStageMask_ }
+ , resourceUsage{ resourceUsage_ }
+ , numPhysicalVgprs{ numPhysicalVgprs_ }
+ , numPhysicalSgprs{ numPhysicalSgprs_ }
+ , numAvailableVgprs{ numAvailableVgprs_ }
+ , numAvailableSgprs{ numAvailableSgprs_ }
+ , computeWorkGroupSize{ computeWorkGroupSize_ }
{
}
@@ -109619,8 +110111,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
+ : pNext{ pNext_ }
+ , sharedPresentSupportedUsageFlags{ sharedPresentSupportedUsageFlags_ }
{
}
@@ -109700,9 +110192,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {},
VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
- : aspectMask( aspectMask_ )
- , imageGranularity( imageGranularity_ )
- , flags( flags_ )
+ : aspectMask{ aspectMask_ }
+ , imageGranularity{ imageGranularity_ }
+ , flags{ flags_ }
{
}
@@ -109778,8 +110270,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , properties( properties_ )
+ : pNext{ pNext_ }
+ , properties{ properties_ }
{
}
@@ -109863,11 +110355,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT
- : formatProperties( formatProperties_ )
- , imageMipTailFirstLod( imageMipTailFirstLod_ )
- , imageMipTailSize( imageMipTailSize_ )
- , imageMipTailOffset( imageMipTailOffset_ )
- , imageMipTailStride( imageMipTailStride_ )
+ : formatProperties{ formatProperties_ }
+ , imageMipTailFirstLod{ imageMipTailFirstLod_ }
+ , imageMipTailSize{ imageMipTailSize_ }
+ , imageMipTailOffset{ imageMipTailOffset_ }
+ , imageMipTailStride{ imageMipTailStride_ }
{
}
@@ -109951,8 +110443,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryRequirements( memoryRequirements_ )
+ : pNext{ pNext_ }
+ , memoryRequirements{ memoryRequirements_ }
{
}
@@ -110038,9 +110530,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {},
GgpStreamDescriptor streamDescriptor_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , streamDescriptor( streamDescriptor_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , streamDescriptor{ streamDescriptor_ }
{
}
@@ -110155,9 +110647,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
- : deviceAddress( deviceAddress_ )
- , stride( stride_ )
- , size( size_ )
+ : deviceAddress{ deviceAddress_ }
+ , stride{ stride_ }
+ , size{ size_ }
{
}
@@ -110259,14 +110751,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreCount_ = {},
const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreCount( waitSemaphoreCount_ )
- , pWaitSemaphores( pWaitSemaphores_ )
- , pWaitDstStageMask( pWaitDstStageMask_ )
- , commandBufferCount( commandBufferCount_ )
- , pCommandBuffers( pCommandBuffers_ )
- , signalSemaphoreCount( signalSemaphoreCount_ )
- , pSignalSemaphores( pSignalSemaphores_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreCount{ waitSemaphoreCount_ }
+ , pWaitSemaphores{ pWaitSemaphores_ }
+ , pWaitDstStageMask{ pWaitDstStageMask_ }
+ , commandBufferCount{ commandBufferCount_ }
+ , pCommandBuffers{ pCommandBuffers_ }
+ , signalSemaphoreCount{ signalSemaphoreCount_ }
+ , pSignalSemaphores{ pSignalSemaphores_ }
{
}
@@ -110485,14 +110977,14 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreInfoCount_ = {},
const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , waitSemaphoreInfoCount( waitSemaphoreInfoCount_ )
- , pWaitSemaphoreInfos( pWaitSemaphoreInfos_ )
- , commandBufferInfoCount( commandBufferInfoCount_ )
- , pCommandBufferInfos( pCommandBufferInfos_ )
- , signalSemaphoreInfoCount( signalSemaphoreInfoCount_ )
- , pSignalSemaphoreInfos( pSignalSemaphoreInfos_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , waitSemaphoreInfoCount{ waitSemaphoreInfoCount_ }
+ , pWaitSemaphoreInfos{ pWaitSemaphoreInfos_ }
+ , commandBufferInfoCount{ commandBufferInfoCount_ }
+ , pCommandBufferInfos{ pCommandBufferInfos_ }
+ , signalSemaphoreInfoCount{ signalSemaphoreInfoCount_ }
+ , pSignalSemaphoreInfos{ pSignalSemaphoreInfos_ }
{
}
@@ -110698,8 +111190,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , contents( contents_ )
+ : pNext{ pNext_ }
+ , contents{ contents_ }
{
}
@@ -110797,10 +111289,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , depthResolveMode( depthResolveMode_ )
- , stencilResolveMode( stencilResolveMode_ )
- , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
+ : pNext{ pNext_ }
+ , depthResolveMode{ depthResolveMode_ }
+ , stencilResolveMode{ stencilResolveMode_ }
+ , pDepthStencilResolveAttachment{ pDepthStencilResolveAttachment_ }
{
}
@@ -110918,7 +111410,7 @@ namespace VULKAN_HPP_NAMESPACE
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR SubpassEndInfo( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
+ VULKAN_HPP_CONSTEXPR SubpassEndInfo( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext{ pNext_ } {}
VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -111005,9 +111497,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( uint32_t fragmentDensityOffsetCount_ = {},
const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fragmentDensityOffsetCount( fragmentDensityOffsetCount_ )
- , pFragmentDensityOffsets( pFragmentDensityOffsets_ )
+ : pNext{ pNext_ }
+ , fragmentDensityOffsetCount{ fragmentDensityOffsetCount_ }
+ , pFragmentDensityOffsets{ pFragmentDensityOffsets_ }
{
}
@@ -111132,8 +111624,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimal_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , optimal( optimal_ )
+ : pNext{ pNext_ }
+ , optimal{ optimal_ }
{
}
@@ -111216,9 +111708,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
uint32_t subpass_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , renderPass( renderPass_ )
- , subpass( subpass_ )
+ : pNext{ pNext_ }
+ , renderPass{ renderPass_ }
+ , subpass{ subpass_ }
{
}
@@ -111320,8 +111812,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , size( size_ )
+ : pNext{ pNext_ }
+ , size{ size_ }
{
}
@@ -111402,8 +111894,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , subresourceLayout( subresourceLayout_ )
+ : pNext{ pNext_ }
+ , subresourceLayout{ subresourceLayout_ }
{
}
@@ -111498,18 +111990,18 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {},
VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , minImageCount( minImageCount_ )
- , maxImageCount( maxImageCount_ )
- , currentExtent( currentExtent_ )
- , minImageExtent( minImageExtent_ )
- , maxImageExtent( maxImageExtent_ )
- , maxImageArrayLayers( maxImageArrayLayers_ )
- , supportedTransforms( supportedTransforms_ )
- , currentTransform( currentTransform_ )
- , supportedCompositeAlpha( supportedCompositeAlpha_ )
- , supportedUsageFlags( supportedUsageFlags_ )
- , supportedSurfaceCounters( supportedSurfaceCounters_ )
+ : pNext{ pNext_ }
+ , minImageCount{ minImageCount_ }
+ , maxImageCount{ maxImageCount_ }
+ , currentExtent{ currentExtent_ }
+ , minImageExtent{ minImageExtent_ }
+ , maxImageExtent{ maxImageExtent_ }
+ , maxImageArrayLayers{ maxImageArrayLayers_ }
+ , supportedTransforms{ supportedTransforms_ }
+ , currentTransform{ currentTransform_ }
+ , supportedCompositeAlpha{ supportedCompositeAlpha_ }
+ , supportedUsageFlags{ supportedUsageFlags_ }
+ , supportedSurfaceCounters{ supportedSurfaceCounters_ }
{
}
@@ -111635,16 +112127,16 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT
- : minImageCount( minImageCount_ )
- , maxImageCount( maxImageCount_ )
- , currentExtent( currentExtent_ )
- , minImageExtent( minImageExtent_ )
- , maxImageExtent( maxImageExtent_ )
- , maxImageArrayLayers( maxImageArrayLayers_ )
- , supportedTransforms( supportedTransforms_ )
- , currentTransform( currentTransform_ )
- , supportedCompositeAlpha( supportedCompositeAlpha_ )
- , supportedUsageFlags( supportedUsageFlags_ )
+ : minImageCount{ minImageCount_ }
+ , maxImageCount{ maxImageCount_ }
+ , currentExtent{ currentExtent_ }
+ , minImageExtent{ minImageExtent_ }
+ , maxImageExtent{ maxImageExtent_ }
+ , maxImageArrayLayers{ maxImageArrayLayers_ }
+ , supportedTransforms{ supportedTransforms_ }
+ , currentTransform{ currentTransform_ }
+ , supportedCompositeAlpha{ supportedCompositeAlpha_ }
+ , supportedUsageFlags{ supportedUsageFlags_ }
{
}
@@ -111748,8 +112240,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , surfaceCapabilities( surfaceCapabilities_ )
+ : pNext{ pNext_ }
+ , surfaceCapabilities{ surfaceCapabilities_ }
{
}
@@ -111832,8 +112324,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
+ : pNext{ pNext_ }
+ , fullScreenExclusiveSupported{ fullScreenExclusiveSupported_ }
{
}
@@ -111931,8 +112423,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentBarrierNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentBarrierSupported( presentBarrierSupported_ )
+ : pNext{ pNext_ }
+ , presentBarrierSupported{ presentBarrierSupported_ }
{
}
@@ -112027,8 +112519,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR
SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT
- : format( format_ )
- , colorSpace( colorSpace_ )
+ : format{ format_ }
+ , colorSpace{ colorSpace_ }
{
}
@@ -112099,8 +112591,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , surfaceFormat( surfaceFormat_ )
+ : pNext{ pNext_ }
+ , surfaceFormat{ surfaceFormat_ }
{
}
@@ -112181,8 +112673,8 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(
VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , fullScreenExclusive( fullScreenExclusive_ )
+ : pNext{ pNext_ }
+ , fullScreenExclusive{ fullScreenExclusive_ }
{
}
@@ -112280,8 +112772,8 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hmonitor( hmonitor_ )
+ : pNext{ pNext_ }
+ , hmonitor{ hmonitor_ }
{
}
@@ -112379,9 +112871,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SurfacePresentModeCompatibilityEXT( uint32_t presentModeCount_ = {},
VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentModeCount( presentModeCount_ )
- , pPresentModes( pPresentModes_ )
+ : pNext{ pNext_ }
+ , presentModeCount{ presentModeCount_ }
+ , pPresentModes{ pPresentModes_ }
{
}
@@ -112502,8 +112994,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfacePresentModeEXT( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentMode( presentMode_ )
+ : pNext{ pNext_ }
+ , presentMode{ presentMode_ }
{
}
@@ -112603,12 +113095,12 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D minScaledImageExtent_ = {},
VULKAN_HPP_NAMESPACE::Extent2D maxScaledImageExtent_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportedPresentScaling( supportedPresentScaling_ )
- , supportedPresentGravityX( supportedPresentGravityX_ )
- , supportedPresentGravityY( supportedPresentGravityY_ )
- , minScaledImageExtent( minScaledImageExtent_ )
- , maxScaledImageExtent( maxScaledImageExtent_ )
+ : pNext{ pNext_ }
+ , supportedPresentScaling{ supportedPresentScaling_ }
+ , supportedPresentGravityX{ supportedPresentGravityX_ }
+ , supportedPresentGravityY{ supportedPresentGravityY_ }
+ , minScaledImageExtent{ minScaledImageExtent_ }
+ , maxScaledImageExtent{ maxScaledImageExtent_ }
{
}
@@ -112745,8 +113237,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportsProtected( supportsProtected_ )
+ : pNext{ pNext_ }
+ , supportsProtected{ supportsProtected_ }
{
}
@@ -112842,8 +113334,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , surfaceCounters( surfaceCounters_ )
+ : pNext{ pNext_ }
+ , surfaceCounters{ surfaceCounters_ }
{
}
@@ -112956,23 +113448,23 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , surface( surface_ )
- , minImageCount( minImageCount_ )
- , imageFormat( imageFormat_ )
- , imageColorSpace( imageColorSpace_ )
- , imageExtent( imageExtent_ )
- , imageArrayLayers( imageArrayLayers_ )
- , imageUsage( imageUsage_ )
- , imageSharingMode( imageSharingMode_ )
- , queueFamilyIndexCount( queueFamilyIndexCount_ )
- , pQueueFamilyIndices( pQueueFamilyIndices_ )
- , preTransform( preTransform_ )
- , compositeAlpha( compositeAlpha_ )
- , presentMode( presentMode_ )
- , clipped( clipped_ )
- , oldSwapchain( oldSwapchain_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , surface{ surface_ }
+ , minImageCount{ minImageCount_ }
+ , imageFormat{ imageFormat_ }
+ , imageColorSpace{ imageColorSpace_ }
+ , imageExtent{ imageExtent_ }
+ , imageArrayLayers{ imageArrayLayers_ }
+ , imageUsage{ imageUsage_ }
+ , imageSharingMode{ imageSharingMode_ }
+ , queueFamilyIndexCount{ queueFamilyIndexCount_ }
+ , pQueueFamilyIndices{ pQueueFamilyIndices_ }
+ , preTransform{ preTransform_ }
+ , compositeAlpha{ compositeAlpha_ }
+ , presentMode{ presentMode_ }
+ , clipped{ clipped_ }
+ , oldSwapchain{ oldSwapchain_ }
{
}
@@ -113260,8 +113752,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , localDimmingEnable( localDimmingEnable_ )
+ : pNext{ pNext_ }
+ , localDimmingEnable{ localDimmingEnable_ }
{
}
@@ -113357,8 +113849,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , latencyModeEnable( latencyModeEnable_ )
+ : pNext{ pNext_ }
+ , latencyModeEnable{ latencyModeEnable_ }
{
}
@@ -113454,8 +113946,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR SwapchainPresentBarrierCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentBarrierEnable( presentBarrierEnable_ )
+ : pNext{ pNext_ }
+ , presentBarrierEnable{ presentBarrierEnable_ }
{
}
@@ -113553,9 +114045,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT( uint32_t swapchainCount_ = {},
const VULKAN_HPP_NAMESPACE::Fence * pFences_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pFences( pFences_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pFences{ pFences_ }
{
}
@@ -113677,9 +114169,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT( uint32_t swapchainCount_ = {},
const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , swapchainCount( swapchainCount_ )
- , pPresentModes( pPresentModes_ )
+ : pNext{ pNext_ }
+ , swapchainCount{ swapchainCount_ }
+ , pPresentModes{ pPresentModes_ }
{
}
@@ -113801,9 +114293,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT( uint32_t presentModeCount_ = {},
const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , presentModeCount( presentModeCount_ )
- , pPresentModes( pPresentModes_ )
+ : pNext{ pNext_ }
+ , presentModeCount{ presentModeCount_ }
+ , pPresentModes{ pPresentModes_ }
{
}
@@ -113927,10 +114419,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ = {},
VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , scalingBehavior( scalingBehavior_ )
- , presentGravityX( presentGravityX_ )
- , presentGravityY( presentGravityY_ )
+ : pNext{ pNext_ }
+ , scalingBehavior{ scalingBehavior_ }
+ , presentGravityX{ presentGravityX_ }
+ , presentGravityY{ presentGravityY_ }
{
}
@@ -114048,8 +114540,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
+ : pNext{ pNext_ }
+ , supportsTextureGatherLODBiasAMD{ supportsTextureGatherLODBiasAMD_ }
{
}
@@ -114133,10 +114625,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D apronSize_ = {},
VULKAN_HPP_NAMESPACE::Offset2D origin_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , tileSize( tileSize_ )
- , apronSize( apronSize_ )
- , origin( origin_ )
+ : pNext{ pNext_ }
+ , tileSize{ tileSize_ }
+ , apronSize{ apronSize_ }
+ , origin{ origin_ }
{
}
@@ -114250,11 +114742,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t signalSemaphoreValueCount_ = {},
const uint64_t * pSignalSemaphoreValues_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , waitSemaphoreValueCount( waitSemaphoreValueCount_ )
- , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
- , signalSemaphoreValueCount( signalSemaphoreValueCount_ )
- , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
+ : pNext{ pNext_ }
+ , waitSemaphoreValueCount{ waitSemaphoreValueCount_ }
+ , pWaitSemaphoreValues{ pWaitSemaphoreValues_ }
+ , signalSemaphoreValueCount{ signalSemaphoreValueCount_ }
+ , pSignalSemaphoreValues{ pSignalSemaphoreValues_ }
{
}
@@ -114422,20 +114914,20 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t width_ = {},
uint32_t height_ = {},
uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
- : raygenShaderRecordAddress( raygenShaderRecordAddress_ )
- , raygenShaderRecordSize( raygenShaderRecordSize_ )
- , missShaderBindingTableAddress( missShaderBindingTableAddress_ )
- , missShaderBindingTableSize( missShaderBindingTableSize_ )
- , missShaderBindingTableStride( missShaderBindingTableStride_ )
- , hitShaderBindingTableAddress( hitShaderBindingTableAddress_ )
- , hitShaderBindingTableSize( hitShaderBindingTableSize_ )
- , hitShaderBindingTableStride( hitShaderBindingTableStride_ )
- , callableShaderBindingTableAddress( callableShaderBindingTableAddress_ )
- , callableShaderBindingTableSize( callableShaderBindingTableSize_ )
- , callableShaderBindingTableStride( callableShaderBindingTableStride_ )
- , width( width_ )
- , height( height_ )
- , depth( depth_ )
+ : raygenShaderRecordAddress{ raygenShaderRecordAddress_ }
+ , raygenShaderRecordSize{ raygenShaderRecordSize_ }
+ , missShaderBindingTableAddress{ missShaderBindingTableAddress_ }
+ , missShaderBindingTableSize{ missShaderBindingTableSize_ }
+ , missShaderBindingTableStride{ missShaderBindingTableStride_ }
+ , hitShaderBindingTableAddress{ hitShaderBindingTableAddress_ }
+ , hitShaderBindingTableSize{ hitShaderBindingTableSize_ }
+ , hitShaderBindingTableStride{ hitShaderBindingTableStride_ }
+ , callableShaderBindingTableAddress{ callableShaderBindingTableAddress_ }
+ , callableShaderBindingTableSize{ callableShaderBindingTableSize_ }
+ , callableShaderBindingTableStride{ callableShaderBindingTableStride_ }
+ , width{ width_ }
+ , height{ height_ }
+ , depth{ depth_ }
{
}
@@ -114648,9 +115140,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
- : width( width_ )
- , height( height_ )
- , depth( depth_ )
+ : width{ width_ }
+ , height{ height_ }
+ , depth{ depth_ }
{
}
@@ -114753,10 +115245,10 @@ namespace VULKAN_HPP_NAMESPACE
size_t initialDataSize_ = {},
const void * pInitialData_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , initialDataSize( initialDataSize_ )
- , pInitialData( pInitialData_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , initialDataSize{ initialDataSize_ }
+ , pInitialData{ pInitialData_ }
{
}
@@ -114894,11 +115386,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t disabledValidationFeatureCount_ = {},
const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , enabledValidationFeatureCount( enabledValidationFeatureCount_ )
- , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
- , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
- , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
+ : pNext{ pNext_ }
+ , enabledValidationFeatureCount{ enabledValidationFeatureCount_ }
+ , pEnabledValidationFeatures{ pEnabledValidationFeatures_ }
+ , disabledValidationFeatureCount{ disabledValidationFeatureCount_ }
+ , pDisabledValidationFeatures{ pDisabledValidationFeatures_ }
{
}
@@ -115061,9 +115553,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = {},
const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , disabledValidationCheckCount( disabledValidationCheckCount_ )
- , pDisabledValidationChecks( pDisabledValidationChecks_ )
+ : pNext{ pNext_ }
+ , disabledValidationCheckCount{ disabledValidationCheckCount_ }
+ , pDisabledValidationChecks{ pDisabledValidationChecks_ }
{
}
@@ -115188,11 +115680,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
uint32_t offset_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , location( location_ )
- , binding( binding_ )
- , format( format_ )
- , offset( offset_ )
+ : pNext{ pNext_ }
+ , location{ location_ }
+ , binding{ binding_ }
+ , format{ format_ }
+ , offset{ offset_ }
{
}
@@ -115318,11 +115810,11 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex,
uint32_t divisor_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , binding( binding_ )
- , stride( stride_ )
- , inputRate( inputRate_ )
- , divisor( divisor_ )
+ : pNext{ pNext_ }
+ , binding{ binding_ }
+ , stride{ stride_ }
+ , inputRate{ inputRate_ }
+ , divisor{ divisor_ }
{
}
@@ -115446,9 +115938,9 @@ namespace VULKAN_HPP_NAMESPACE
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void * window_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , window( window_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , window{ window_ }
{
}
@@ -115555,11 +116047,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t baseArrayLayer_ = {},
VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , codedOffset( codedOffset_ )
- , codedExtent( codedExtent_ )
- , baseArrayLayer( baseArrayLayer_ )
- , imageViewBinding( imageViewBinding_ )
+ : pNext{ pNext_ }
+ , codedOffset{ codedOffset_ }
+ , codedExtent{ codedExtent_ }
+ , baseArrayLayer{ baseArrayLayer_ }
+ , imageViewBinding{ imageViewBinding_ }
{
}
@@ -115683,9 +116175,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( int32_t slotIndex_ = {},
const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , slotIndex( slotIndex_ )
- , pPictureResource( pPictureResource_ )
+ : pNext{ pNext_ }
+ , slotIndex{ slotIndex_ }
+ , pPictureResource{ pPictureResource_ }
{
}
@@ -115796,12 +116288,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t referenceSlotCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , videoSession( videoSession_ )
- , videoSessionParameters( videoSessionParameters_ )
- , referenceSlotCount( referenceSlotCount_ )
- , pReferenceSlots( pReferenceSlots_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , videoSession{ videoSession_ }
+ , videoSessionParameters{ videoSessionParameters_ }
+ , referenceSlotCount{ referenceSlotCount_ }
+ , pReferenceSlots{ pReferenceSlots_ }
{
}
@@ -115969,16 +116461,16 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxActiveReferencePictures_ = {},
VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , minBitstreamBufferOffsetAlignment( minBitstreamBufferOffsetAlignment_ )
- , minBitstreamBufferSizeAlignment( minBitstreamBufferSizeAlignment_ )
- , pictureAccessGranularity( pictureAccessGranularity_ )
- , minCodedExtent( minCodedExtent_ )
- , maxCodedExtent( maxCodedExtent_ )
- , maxDpbSlots( maxDpbSlots_ )
- , maxActiveReferencePictures( maxActiveReferencePictures_ )
- , stdHeaderVersion( stdHeaderVersion_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , minBitstreamBufferOffsetAlignment{ minBitstreamBufferOffsetAlignment_ }
+ , minBitstreamBufferSizeAlignment{ minBitstreamBufferSizeAlignment_ }
+ , pictureAccessGranularity{ pictureAccessGranularity_ }
+ , minCodedExtent{ minCodedExtent_ }
+ , maxCodedExtent{ maxCodedExtent_ }
+ , maxDpbSlots{ maxDpbSlots_ }
+ , maxActiveReferencePictures{ maxActiveReferencePictures_ }
+ , stdHeaderVersion{ stdHeaderVersion_ }
{
}
@@ -116092,8 +116584,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -116188,8 +116680,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeAV1CapabilitiesKHR( StdVideoAV1Level maxLevel_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxLevel( maxLevel_ )
+ : pNext{ pNext_ }
+ , maxLevel{ maxLevel_ }
{
}
@@ -116277,8 +116769,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeAV1DpbSlotInfoKHR( const StdVideoDecodeAV1ReferenceInfo * pStdReferenceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdReferenceInfo( pStdReferenceInfo_ )
+ : pNext{ pNext_ }
+ , pStdReferenceInfo{ pStdReferenceInfo_ }
{
}
@@ -116379,13 +116871,13 @@ namespace VULKAN_HPP_NAMESPACE
const uint32_t * pTileOffsets_ = {},
const uint32_t * pTileSizes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdPictureInfo( pStdPictureInfo_ )
- , referenceNameSlotIndices( referenceNameSlotIndices_ )
- , frameHeaderOffset( frameHeaderOffset_ )
- , tileCount( tileCount_ )
- , pTileOffsets( pTileOffsets_ )
- , pTileSizes( pTileSizes_ )
+ : pNext{ pNext_ }
+ , pStdPictureInfo{ pStdPictureInfo_ }
+ , referenceNameSlotIndices{ referenceNameSlotIndices_ }
+ , frameHeaderOffset{ frameHeaderOffset_ }
+ , tileCount{ tileCount_ }
+ , pTileOffsets{ pTileOffsets_ }
+ , pTileSizes{ pTileSizes_ }
{
}
@@ -116572,9 +117064,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoDecodeAV1ProfileInfoKHR( StdVideoAV1Profile stdProfile_ = {},
VULKAN_HPP_NAMESPACE::Bool32 filmGrainSupport_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdProfile( stdProfile_ )
- , filmGrainSupport( filmGrainSupport_ )
+ : pNext{ pNext_ }
+ , stdProfile{ stdProfile_ }
+ , filmGrainSupport{ filmGrainSupport_ }
{
}
@@ -116686,8 +117178,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeAV1SessionParametersCreateInfoKHR( const StdVideoAV1SequenceHeader * pStdSequenceHeader_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdSequenceHeader( pStdSequenceHeader_ )
+ : pNext{ pNext_ }
+ , pStdSequenceHeader{ pStdSequenceHeader_ }
{
}
@@ -116784,8 +117276,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -116868,9 +117360,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( StdVideoH264LevelIdc maxLevelIdc_ = {},
VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxLevelIdc( maxLevelIdc_ )
- , fieldOffsetGranularity( fieldOffsetGranularity_ )
+ : pNext{ pNext_ }
+ , maxLevelIdc{ maxLevelIdc_ }
+ , fieldOffsetGranularity{ fieldOffsetGranularity_ }
{
}
@@ -116962,8 +117454,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdReferenceInfo( pStdReferenceInfo_ )
+ : pNext{ pNext_ }
+ , pStdReferenceInfo{ pStdReferenceInfo_ }
{
}
@@ -117062,10 +117554,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t sliceCount_ = {},
const uint32_t * pSliceOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdPictureInfo( pStdPictureInfo_ )
- , sliceCount( sliceCount_ )
- , pSliceOffsets( pSliceOffsets_ )
+ : pNext{ pNext_ }
+ , pStdPictureInfo{ pStdPictureInfo_ }
+ , sliceCount{ sliceCount_ }
+ , pSliceOffsets{ pSliceOffsets_ }
{
}
@@ -117200,9 +117692,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ =
VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdProfileIdc( stdProfileIdc_ )
- , pictureLayout( pictureLayout_ )
+ : pNext{ pNext_ }
+ , stdProfileIdc{ stdProfileIdc_ }
+ , pictureLayout{ pictureLayout_ }
{
}
@@ -117321,11 +117813,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdPPSCount_ = {},
const StdVideoH264PictureParameterSet * pStdPPSs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdSPSCount( stdSPSCount_ )
- , pStdSPSs( pStdSPSs_ )
- , stdPPSCount( stdPPSCount_ )
- , pStdPPSs( pStdPPSs_ )
+ : pNext{ pNext_ }
+ , stdSPSCount{ stdSPSCount_ }
+ , pStdSPSs{ pStdSPSs_ }
+ , stdPPSCount{ stdPPSCount_ }
+ , pStdPPSs{ pStdPPSs_ }
{
}
@@ -117484,10 +117976,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxStdPPSCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxStdSPSCount( maxStdSPSCount_ )
- , maxStdPPSCount( maxStdPPSCount_ )
- , pParametersAddInfo( pParametersAddInfo_ )
+ : pNext{ pNext_ }
+ , maxStdSPSCount{ maxStdSPSCount_ }
+ , maxStdPPSCount{ maxStdPPSCount_ }
+ , pParametersAddInfo{ pParametersAddInfo_ }
{
}
@@ -117603,8 +118095,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( StdVideoH265LevelIdc maxLevelIdc_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxLevelIdc( maxLevelIdc_ )
+ : pNext{ pNext_ }
+ , maxLevelIdc{ maxLevelIdc_ }
{
}
@@ -117692,8 +118184,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdReferenceInfo( pStdReferenceInfo_ )
+ : pNext{ pNext_ }
+ , pStdReferenceInfo{ pStdReferenceInfo_ }
{
}
@@ -117792,10 +118284,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t sliceSegmentCount_ = {},
const uint32_t * pSliceSegmentOffsets_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdPictureInfo( pStdPictureInfo_ )
- , sliceSegmentCount( sliceSegmentCount_ )
- , pSliceSegmentOffsets( pSliceSegmentOffsets_ )
+ : pNext{ pNext_ }
+ , pStdPictureInfo{ pStdPictureInfo_ }
+ , sliceSegmentCount{ sliceSegmentCount_ }
+ , pSliceSegmentOffsets{ pSliceSegmentOffsets_ }
{
}
@@ -117931,8 +118423,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdProfileIdc( stdProfileIdc_ )
+ : pNext{ pNext_ }
+ , stdProfileIdc{ stdProfileIdc_ }
{
}
@@ -118039,13 +118531,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdPPSCount_ = {},
const StdVideoH265PictureParameterSet * pStdPPSs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdVPSCount( stdVPSCount_ )
- , pStdVPSs( pStdVPSs_ )
- , stdSPSCount( stdSPSCount_ )
- , pStdSPSs( pStdSPSs_ )
- , stdPPSCount( stdPPSCount_ )
- , pStdPPSs( pStdPPSs_ )
+ : pNext{ pNext_ }
+ , stdVPSCount{ stdVPSCount_ }
+ , pStdVPSs{ pStdVPSs_ }
+ , stdSPSCount{ stdSPSCount_ }
+ , pStdSPSs{ pStdSPSs_ }
+ , stdPPSCount{ stdPPSCount_ }
+ , pStdPPSs{ pStdPPSs_ }
{
}
@@ -118234,11 +118726,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxStdPPSCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxStdVPSCount( maxStdVPSCount_ )
- , maxStdSPSCount( maxStdSPSCount_ )
- , maxStdPPSCount( maxStdPPSCount_ )
- , pParametersAddInfo( pParametersAddInfo_ )
+ : pNext{ pNext_ }
+ , maxStdVPSCount{ maxStdVPSCount_ }
+ , maxStdSPSCount{ maxStdSPSCount_ }
+ , maxStdPPSCount{ maxStdPPSCount_ }
+ , pParametersAddInfo{ pParametersAddInfo_ }
{
}
@@ -118370,15 +118862,15 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t referenceSlotCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , srcBuffer( srcBuffer_ )
- , srcBufferOffset( srcBufferOffset_ )
- , srcBufferRange( srcBufferRange_ )
- , dstPictureResource( dstPictureResource_ )
- , pSetupReferenceSlot( pSetupReferenceSlot_ )
- , referenceSlotCount( referenceSlotCount_ )
- , pReferenceSlots( pReferenceSlots_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , srcBuffer{ srcBuffer_ }
+ , srcBufferOffset{ srcBufferOffset_ }
+ , srcBufferRange{ srcBufferRange_ }
+ , dstPictureResource{ dstPictureResource_ }
+ , pSetupReferenceSlot{ pSetupReferenceSlot_ }
+ , referenceSlotCount{ referenceSlotCount_ }
+ , pReferenceSlots{ pReferenceSlots_ }
{
}
@@ -118568,8 +119060,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoUsageHints( videoUsageHints_ )
+ : pNext{ pNext_ }
+ , videoUsageHints{ videoUsageHints_ }
{
}
@@ -118671,14 +119163,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Extent2D encodeInputPictureGranularity_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , rateControlModes( rateControlModes_ )
- , maxRateControlLayers( maxRateControlLayers_ )
- , maxBitrate( maxBitrate_ )
- , maxQualityLevels( maxQualityLevels_ )
- , encodeInputPictureGranularity( encodeInputPictureGranularity_ )
- , supportedEncodeFeedbackFlags( supportedEncodeFeedbackFlags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , rateControlModes{ rateControlModes_ }
+ , maxRateControlLayers{ maxRateControlLayers_ }
+ , maxBitrate{ maxBitrate_ }
+ , maxQualityLevels{ maxQualityLevels_ }
+ , encodeInputPictureGranularity{ encodeInputPictureGranularity_ }
+ , supportedEncodeFeedbackFlags{ supportedEncodeFeedbackFlags_ }
{
}
@@ -118796,20 +119288,20 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsKHR stdSyntaxFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , maxLevelIdc( maxLevelIdc_ )
- , maxSliceCount( maxSliceCount_ )
- , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
- , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
- , maxL1ReferenceCount( maxL1ReferenceCount_ )
- , maxTemporalLayerCount( maxTemporalLayerCount_ )
- , expectDyadicTemporalLayerPattern( expectDyadicTemporalLayerPattern_ )
- , minQp( minQp_ )
- , maxQp( maxQp_ )
- , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
- , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
- , stdSyntaxFlags( stdSyntaxFlags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , maxLevelIdc{ maxLevelIdc_ }
+ , maxSliceCount{ maxSliceCount_ }
+ , maxPPictureL0ReferenceCount{ maxPPictureL0ReferenceCount_ }
+ , maxBPictureL0ReferenceCount{ maxBPictureL0ReferenceCount_ }
+ , maxL1ReferenceCount{ maxL1ReferenceCount_ }
+ , maxTemporalLayerCount{ maxTemporalLayerCount_ }
+ , expectDyadicTemporalLayerPattern{ expectDyadicTemporalLayerPattern_ }
+ , minQp{ minQp_ }
+ , maxQp{ maxQp_ }
+ , prefersGopRemainingFrames{ prefersGopRemainingFrames_ }
+ , requiresGopRemainingFrames{ requiresGopRemainingFrames_ }
+ , stdSyntaxFlags{ stdSyntaxFlags_ }
{
}
@@ -118967,8 +119459,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoKHR( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdReferenceInfo( pStdReferenceInfo_ )
+ : pNext{ pNext_ }
+ , pStdReferenceInfo{ pStdReferenceInfo_ }
{
}
@@ -119061,9 +119553,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeKHR( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
- : frameISize( frameISize_ )
- , framePSize( framePSize_ )
- , frameBSize( frameBSize_ )
+ : frameISize{ frameISize_ }
+ , framePSize{ framePSize_ }
+ , frameBSize{ frameBSize_ }
{
}
@@ -119162,11 +119654,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t gopRemainingP_ = {},
uint32_t gopRemainingB_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useGopRemainingFrames( useGopRemainingFrames_ )
- , gopRemainingI( gopRemainingI_ )
- , gopRemainingP( gopRemainingP_ )
- , gopRemainingB( gopRemainingB_ )
+ : pNext{ pNext_ }
+ , useGopRemainingFrames{ useGopRemainingFrames_ }
+ , gopRemainingI{ gopRemainingI_ }
+ , gopRemainingP{ gopRemainingP_ }
+ , gopRemainingB{ gopRemainingB_ }
{
}
@@ -119291,9 +119783,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoKHR( int32_t constantQp_ = {},
const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , constantQp( constantQp_ )
- , pStdSliceHeader( pStdSliceHeader_ )
+ : pNext{ pNext_ }
+ , constantQp{ constantQp_ }
+ , pStdSliceHeader{ pStdSliceHeader_ }
{
}
@@ -119399,11 +119891,11 @@ namespace VULKAN_HPP_NAMESPACE
const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {},
VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , naluSliceEntryCount( naluSliceEntryCount_ )
- , pNaluSliceEntries( pNaluSliceEntries_ )
- , pStdPictureInfo( pStdPictureInfo_ )
- , generatePrefixNalu( generatePrefixNalu_ )
+ : pNext{ pNext_ }
+ , naluSliceEntryCount{ naluSliceEntryCount_ }
+ , pNaluSliceEntries{ pNaluSliceEntries_ }
+ , pStdPictureInfo{ pStdPictureInfo_ }
+ , generatePrefixNalu{ generatePrefixNalu_ }
{
}
@@ -119551,8 +120043,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoKHR( StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdProfileIdc( stdProfileIdc_ )
+ : pNext{ pNext_ }
+ , stdProfileIdc{ stdProfileIdc_ }
{
}
@@ -119650,9 +120142,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH264QpKHR( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
- : qpI( qpI_ )
- , qpP( qpP_ )
- , qpB( qpB_ )
+ : qpI{ qpI_ }
+ , qpP{ qpP_ }
+ , qpB{ qpB_ }
{
}
@@ -119756,16 +120248,16 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t preferredMaxL1ReferenceCount_ = {},
VULKAN_HPP_NAMESPACE::Bool32 preferredStdEntropyCodingModeFlag_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , preferredRateControlFlags( preferredRateControlFlags_ )
- , preferredGopFrameCount( preferredGopFrameCount_ )
- , preferredIdrPeriod( preferredIdrPeriod_ )
- , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
- , preferredTemporalLayerCount( preferredTemporalLayerCount_ )
- , preferredConstantQp( preferredConstantQp_ )
- , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
- , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
- , preferredStdEntropyCodingModeFlag( preferredStdEntropyCodingModeFlag_ )
+ : pNext{ pNext_ }
+ , preferredRateControlFlags{ preferredRateControlFlags_ }
+ , preferredGopFrameCount{ preferredGopFrameCount_ }
+ , preferredIdrPeriod{ preferredIdrPeriod_ }
+ , preferredConsecutiveBFrameCount{ preferredConsecutiveBFrameCount_ }
+ , preferredTemporalLayerCount{ preferredTemporalLayerCount_ }
+ , preferredConstantQp{ preferredConstantQp_ }
+ , preferredMaxL0ReferenceCount{ preferredMaxL0ReferenceCount_ }
+ , preferredMaxL1ReferenceCount{ preferredMaxL1ReferenceCount_ }
+ , preferredStdEntropyCodingModeFlag{ preferredStdEntropyCodingModeFlag_ }
{
}
@@ -119884,12 +120376,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t consecutiveBFrameCount_ = {},
uint32_t temporalLayerCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , gopFrameCount( gopFrameCount_ )
- , idrPeriod( idrPeriod_ )
- , consecutiveBFrameCount( consecutiveBFrameCount_ )
- , temporalLayerCount( temporalLayerCount_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , gopFrameCount{ gopFrameCount_ }
+ , idrPeriod{ idrPeriod_ }
+ , consecutiveBFrameCount{ consecutiveBFrameCount_ }
+ , temporalLayerCount{ temporalLayerCount_ }
{
}
@@ -120025,13 +120517,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR maxFrameSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useMinQp( useMinQp_ )
- , minQp( minQp_ )
- , useMaxQp( useMaxQp_ )
- , maxQp( maxQp_ )
- , useMaxFrameSize( useMaxFrameSize_ )
- , maxFrameSize( maxFrameSize_ )
+ : pNext{ pNext_ }
+ , useMinQp{ useMinQp_ }
+ , minQp{ minQp_ }
+ , useMaxQp{ useMaxQp_ }
+ , maxQp{ maxQp_ }
+ , useMaxFrameSize{ useMaxFrameSize_ }
+ , maxFrameSize{ maxFrameSize_ }
{
}
@@ -120172,9 +120664,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
StdVideoH264LevelIdc maxLevelIdc_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useMaxLevelIdc( useMaxLevelIdc_ )
- , maxLevelIdc( maxLevelIdc_ )
+ : pNext{ pNext_ }
+ , useMaxLevelIdc{ useMaxLevelIdc_ }
+ , maxLevelIdc{ maxLevelIdc_ }
{
}
@@ -120289,11 +120781,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdPPSCount_ = {},
const StdVideoH264PictureParameterSet * pStdPPSs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdSPSCount( stdSPSCount_ )
- , pStdSPSs( pStdSPSs_ )
- , stdPPSCount( stdPPSCount_ )
- , pStdPPSs( pStdPPSs_ )
+ : pNext{ pNext_ }
+ , stdSPSCount{ stdSPSCount_ }
+ , pStdSPSs{ pStdSPSs_ }
+ , stdPPSCount{ stdPPSCount_ }
+ , pStdPPSs{ pStdPPSs_ }
{
}
@@ -120452,10 +120944,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxStdPPSCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxStdSPSCount( maxStdSPSCount_ )
- , maxStdPPSCount( maxStdPPSCount_ )
- , pParametersAddInfo( pParametersAddInfo_ )
+ : pNext{ pNext_ }
+ , maxStdSPSCount{ maxStdSPSCount_ }
+ , maxStdPPSCount{ maxStdPPSCount_ }
+ , pParametersAddInfo{ pParametersAddInfo_ }
{
}
@@ -120573,9 +121065,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hasStdSPSOverrides( hasStdSPSOverrides_ )
- , hasStdPPSOverrides( hasStdPPSOverrides_ )
+ : pNext{ pNext_ }
+ , hasStdSPSOverrides{ hasStdSPSOverrides_ }
+ , hasStdPPSOverrides{ hasStdPPSOverrides_ }
{
}
@@ -120663,11 +121155,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdSPSId_ = {},
uint32_t stdPPSId_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , writeStdSPS( writeStdSPS_ )
- , writeStdPPS( writeStdPPS_ )
- , stdSPSId( stdSPSId_ )
- , stdPPSId( stdPPSId_ )
+ : pNext{ pNext_ }
+ , writeStdSPS{ writeStdSPS_ }
+ , writeStdPPS{ writeStdPPS_ }
+ , stdSPSId{ stdSPSId_ }
+ , stdPPSId{ stdPPSId_ }
{
}
@@ -120805,23 +121297,23 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsKHR stdSyntaxFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , maxLevelIdc( maxLevelIdc_ )
- , maxSliceSegmentCount( maxSliceSegmentCount_ )
- , maxTiles( maxTiles_ )
- , ctbSizes( ctbSizes_ )
- , transformBlockSizes( transformBlockSizes_ )
- , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
- , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
- , maxL1ReferenceCount( maxL1ReferenceCount_ )
- , maxSubLayerCount( maxSubLayerCount_ )
- , expectDyadicTemporalSubLayerPattern( expectDyadicTemporalSubLayerPattern_ )
- , minQp( minQp_ )
- , maxQp( maxQp_ )
- , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
- , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
- , stdSyntaxFlags( stdSyntaxFlags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , maxLevelIdc{ maxLevelIdc_ }
+ , maxSliceSegmentCount{ maxSliceSegmentCount_ }
+ , maxTiles{ maxTiles_ }
+ , ctbSizes{ ctbSizes_ }
+ , transformBlockSizes{ transformBlockSizes_ }
+ , maxPPictureL0ReferenceCount{ maxPPictureL0ReferenceCount_ }
+ , maxBPictureL0ReferenceCount{ maxBPictureL0ReferenceCount_ }
+ , maxL1ReferenceCount{ maxL1ReferenceCount_ }
+ , maxSubLayerCount{ maxSubLayerCount_ }
+ , expectDyadicTemporalSubLayerPattern{ expectDyadicTemporalSubLayerPattern_ }
+ , minQp{ minQp_ }
+ , maxQp{ maxQp_ }
+ , prefersGopRemainingFrames{ prefersGopRemainingFrames_ }
+ , requiresGopRemainingFrames{ requiresGopRemainingFrames_ }
+ , stdSyntaxFlags{ stdSyntaxFlags_ }
{
}
@@ -120995,8 +121487,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoKHR( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , pStdReferenceInfo( pStdReferenceInfo_ )
+ : pNext{ pNext_ }
+ , pStdReferenceInfo{ pStdReferenceInfo_ }
{
}
@@ -121089,9 +121581,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeKHR( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
- : frameISize( frameISize_ )
- , framePSize( framePSize_ )
- , frameBSize( frameBSize_ )
+ : frameISize{ frameISize_ }
+ , framePSize{ framePSize_ }
+ , frameBSize{ frameBSize_ }
{
}
@@ -121190,11 +121682,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t gopRemainingP_ = {},
uint32_t gopRemainingB_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useGopRemainingFrames( useGopRemainingFrames_ )
- , gopRemainingI( gopRemainingI_ )
- , gopRemainingP( gopRemainingP_ )
- , gopRemainingB( gopRemainingB_ )
+ : pNext{ pNext_ }
+ , useGopRemainingFrames{ useGopRemainingFrames_ }
+ , gopRemainingI{ gopRemainingI_ }
+ , gopRemainingP{ gopRemainingP_ }
+ , gopRemainingB{ gopRemainingB_ }
{
}
@@ -121319,9 +121811,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoKHR( int32_t constantQp_ = {},
const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , constantQp( constantQp_ )
- , pStdSliceSegmentHeader( pStdSliceSegmentHeader_ )
+ : pNext{ pNext_ }
+ , constantQp{ constantQp_ }
+ , pStdSliceSegmentHeader{ pStdSliceSegmentHeader_ }
{
}
@@ -121427,10 +121919,10 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR * pNaluSliceSegmentEntries_ = {},
const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ )
- , pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ )
- , pStdPictureInfo( pStdPictureInfo_ )
+ : pNext{ pNext_ }
+ , naluSliceSegmentEntryCount{ naluSliceSegmentEntryCount_ }
+ , pNaluSliceSegmentEntries{ pNaluSliceSegmentEntries_ }
+ , pStdPictureInfo{ pStdPictureInfo_ }
{
}
@@ -121569,8 +122061,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoKHR( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdProfileIdc( stdProfileIdc_ )
+ : pNext{ pNext_ }
+ , stdProfileIdc{ stdProfileIdc_ }
{
}
@@ -121668,9 +122160,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeH265QpKHR( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
- : qpI( qpI_ )
- , qpP( qpP_ )
- , qpB( qpB_ )
+ : qpI{ qpI_ }
+ , qpP{ qpP_ }
+ , qpB{ qpB_ }
{
}
@@ -121773,15 +122265,15 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t preferredMaxL0ReferenceCount_ = {},
uint32_t preferredMaxL1ReferenceCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , preferredRateControlFlags( preferredRateControlFlags_ )
- , preferredGopFrameCount( preferredGopFrameCount_ )
- , preferredIdrPeriod( preferredIdrPeriod_ )
- , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
- , preferredSubLayerCount( preferredSubLayerCount_ )
- , preferredConstantQp( preferredConstantQp_ )
- , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
- , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
+ : pNext{ pNext_ }
+ , preferredRateControlFlags{ preferredRateControlFlags_ }
+ , preferredGopFrameCount{ preferredGopFrameCount_ }
+ , preferredIdrPeriod{ preferredIdrPeriod_ }
+ , preferredConsecutiveBFrameCount{ preferredConsecutiveBFrameCount_ }
+ , preferredSubLayerCount{ preferredSubLayerCount_ }
+ , preferredConstantQp{ preferredConstantQp_ }
+ , preferredMaxL0ReferenceCount{ preferredMaxL0ReferenceCount_ }
+ , preferredMaxL1ReferenceCount{ preferredMaxL1ReferenceCount_ }
{
}
@@ -121896,12 +122388,12 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t consecutiveBFrameCount_ = {},
uint32_t subLayerCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , gopFrameCount( gopFrameCount_ )
- , idrPeriod( idrPeriod_ )
- , consecutiveBFrameCount( consecutiveBFrameCount_ )
- , subLayerCount( subLayerCount_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , gopFrameCount{ gopFrameCount_ }
+ , idrPeriod{ idrPeriod_ }
+ , consecutiveBFrameCount{ consecutiveBFrameCount_ }
+ , subLayerCount{ subLayerCount_ }
{
}
@@ -122037,13 +122529,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR maxFrameSize_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useMinQp( useMinQp_ )
- , minQp( minQp_ )
- , useMaxQp( useMaxQp_ )
- , maxQp( maxQp_ )
- , useMaxFrameSize( useMaxFrameSize_ )
- , maxFrameSize( maxFrameSize_ )
+ : pNext{ pNext_ }
+ , useMinQp{ useMinQp_ }
+ , minQp{ minQp_ }
+ , useMaxQp{ useMaxQp_ }
+ , maxQp{ maxQp_ }
+ , useMaxFrameSize{ useMaxFrameSize_ }
+ , maxFrameSize{ maxFrameSize_ }
{
}
@@ -122184,9 +122676,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
StdVideoH265LevelIdc maxLevelIdc_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , useMaxLevelIdc( useMaxLevelIdc_ )
- , maxLevelIdc( maxLevelIdc_ )
+ : pNext{ pNext_ }
+ , useMaxLevelIdc{ useMaxLevelIdc_ }
+ , maxLevelIdc{ maxLevelIdc_ }
{
}
@@ -122303,13 +122795,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdPPSCount_ = {},
const StdVideoH265PictureParameterSet * pStdPPSs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , stdVPSCount( stdVPSCount_ )
- , pStdVPSs( pStdVPSs_ )
- , stdSPSCount( stdSPSCount_ )
- , pStdSPSs( pStdSPSs_ )
- , stdPPSCount( stdPPSCount_ )
- , pStdPPSs( pStdPPSs_ )
+ : pNext{ pNext_ }
+ , stdVPSCount{ stdVPSCount_ }
+ , pStdVPSs{ pStdVPSs_ }
+ , stdSPSCount{ stdSPSCount_ }
+ , pStdSPSs{ pStdSPSs_ }
+ , stdPPSCount{ stdPPSCount_ }
+ , pStdPPSs{ pStdPPSs_ }
{
}
@@ -122498,11 +122990,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxStdPPSCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , maxStdVPSCount( maxStdVPSCount_ )
- , maxStdSPSCount( maxStdSPSCount_ )
- , maxStdPPSCount( maxStdPPSCount_ )
- , pParametersAddInfo( pParametersAddInfo_ )
+ : pNext{ pNext_ }
+ , maxStdVPSCount{ maxStdVPSCount_ }
+ , maxStdSPSCount{ maxStdSPSCount_ }
+ , maxStdPPSCount{ maxStdPPSCount_ }
+ , pParametersAddInfo{ pParametersAddInfo_ }
{
}
@@ -122629,10 +123121,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hasStdVPSOverrides( hasStdVPSOverrides_ )
- , hasStdSPSOverrides( hasStdSPSOverrides_ )
- , hasStdPPSOverrides( hasStdPPSOverrides_ )
+ : pNext{ pNext_ }
+ , hasStdVPSOverrides{ hasStdVPSOverrides_ }
+ , hasStdSPSOverrides{ hasStdSPSOverrides_ }
+ , hasStdPPSOverrides{ hasStdPPSOverrides_ }
{
}
@@ -122727,13 +123219,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t stdSPSId_ = {},
uint32_t stdPPSId_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , writeStdVPS( writeStdVPS_ )
- , writeStdSPS( writeStdSPS_ )
- , writeStdPPS( writeStdPPS_ )
- , stdVPSId( stdVPSId_ )
- , stdSPSId( stdSPSId_ )
- , stdPPSId( stdPPSId_ )
+ : pNext{ pNext_ }
+ , writeStdVPS{ writeStdVPS_ }
+ , writeStdSPS{ writeStdSPS_ }
+ , writeStdPPS{ writeStdPPS_ }
+ , stdVPSId{ stdVPSId_ }
+ , stdSPSId{ stdSPSId_ }
+ , stdPPSId{ stdPPSId_ }
{
}
@@ -122880,16 +123372,16 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
uint32_t precedingExternallyEncodedBytes_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , dstBuffer( dstBuffer_ )
- , dstBufferOffset( dstBufferOffset_ )
- , dstBufferRange( dstBufferRange_ )
- , srcPictureResource( srcPictureResource_ )
- , pSetupReferenceSlot( pSetupReferenceSlot_ )
- , referenceSlotCount( referenceSlotCount_ )
- , pReferenceSlots( pReferenceSlots_ )
- , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , dstBuffer{ dstBuffer_ }
+ , dstBufferOffset{ dstBufferOffset_ }
+ , dstBufferRange{ dstBufferRange_ }
+ , srcPictureResource{ srcPictureResource_ }
+ , pSetupReferenceSlot{ pSetupReferenceSlot_ }
+ , referenceSlotCount{ referenceSlotCount_ }
+ , pReferenceSlots{ pReferenceSlots_ }
+ , precedingExternallyEncodedBytes{ precedingExternallyEncodedBytes_ }
{
}
@@ -123097,8 +123589,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( uint32_t qualityLevel_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , qualityLevel( qualityLevel_ )
+ : pNext{ pNext_ }
+ , qualityLevel{ qualityLevel_ }
{
}
@@ -123196,9 +123688,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault,
uint32_t preferredRateControlLayerCount_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , preferredRateControlMode( preferredRateControlMode_ )
- , preferredRateControlLayerCount( preferredRateControlLayerCount_ )
+ : pNext{ pNext_ }
+ , preferredRateControlMode{ preferredRateControlMode_ }
+ , preferredRateControlLayerCount{ preferredRateControlLayerCount_ }
{
}
@@ -123287,11 +123779,11 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t frameRateNumerator_ = {},
uint32_t frameRateDenominator_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , averageBitrate( averageBitrate_ )
- , maxBitrate( maxBitrate_ )
- , frameRateNumerator( frameRateNumerator_ )
- , frameRateDenominator( frameRateDenominator_ )
+ : pNext{ pNext_ }
+ , averageBitrate{ averageBitrate_ }
+ , maxBitrate{ maxBitrate_ }
+ , frameRateNumerator{ frameRateNumerator_ }
+ , frameRateDenominator{ frameRateDenominator_ }
{
}
@@ -123415,13 +123907,13 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t virtualBufferSizeInMs_ = {},
uint32_t initialVirtualBufferSizeInMs_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , rateControlMode( rateControlMode_ )
- , layerCount( layerCount_ )
- , pLayers( pLayers_ )
- , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
- , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , rateControlMode{ rateControlMode_ }
+ , layerCount{ layerCount_ }
+ , pLayers{ pLayers_ }
+ , virtualBufferSizeInMs{ virtualBufferSizeInMs_ }
+ , initialVirtualBufferSizeInMs{ initialVirtualBufferSizeInMs_ }
{
}
@@ -123592,8 +124084,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasOverrides_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , hasOverrides( hasOverrides_ )
+ : pNext{ pNext_ }
+ , hasOverrides{ hasOverrides_ }
{
}
@@ -123675,8 +124167,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoSessionParameters( videoSessionParameters_ )
+ : pNext{ pNext_ }
+ , videoSessionParameters{ videoSessionParameters_ }
{
}
@@ -123776,10 +124268,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ = {},
VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault,
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , videoUsageHints( videoUsageHints_ )
- , videoContentHints( videoContentHints_ )
- , tuningMode( tuningMode_ )
+ : pNext{ pNext_ }
+ , videoUsageHints{ videoUsageHints_ }
+ , videoContentHints{ videoContentHints_ }
+ , tuningMode{ tuningMode_ }
{
}
@@ -123894,8 +124386,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
{
}
@@ -123996,13 +124488,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ImageTiling imageTiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , format( format_ )
- , componentMapping( componentMapping_ )
- , imageCreateFlags( imageCreateFlags_ )
- , imageType( imageType_ )
- , imageTiling( imageTiling_ )
- , imageUsageFlags( imageUsageFlags_ )
+ : pNext{ pNext_ }
+ , format{ format_ }
+ , componentMapping{ componentMapping_ }
+ , imageCreateFlags{ imageCreateFlags_ }
+ , imageType{ imageType_ }
+ , imageTiling{ imageTiling_ }
+ , imageUsageFlags{ imageUsageFlags_ }
{
}
@@ -124100,10 +124592,10 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t firstQuery_ = {},
uint32_t queryCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queryPool( queryPool_ )
- , firstQuery( firstQuery_ )
- , queryCount( queryCount_ )
+ : pNext{ pNext_ }
+ , queryPool{ queryPool_ }
+ , firstQuery{ firstQuery_ }
+ , queryCount{ queryCount_ }
{
}
@@ -124215,9 +124707,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( uint32_t profileCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , profileCount( profileCount_ )
- , pProfiles( pProfiles_ )
+ : pNext{ pNext_ }
+ , profileCount{ profileCount_ }
+ , pProfiles{ pProfiles_ }
{
}
@@ -124346,16 +124838,16 @@ namespace VULKAN_HPP_NAMESPACE
uint32_t maxActiveReferencePictures_ = {},
const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , queueFamilyIndex( queueFamilyIndex_ )
- , flags( flags_ )
- , pVideoProfile( pVideoProfile_ )
- , pictureFormat( pictureFormat_ )
- , maxCodedExtent( maxCodedExtent_ )
- , referencePictureFormat( referencePictureFormat_ )
- , maxDpbSlots( maxDpbSlots_ )
- , maxActiveReferencePictures( maxActiveReferencePictures_ )
- , pStdHeaderVersion( pStdHeaderVersion_ )
+ : pNext{ pNext_ }
+ , queueFamilyIndex{ queueFamilyIndex_ }
+ , flags{ flags_ }
+ , pVideoProfile{ pVideoProfile_ }
+ , pictureFormat{ pictureFormat_ }
+ , maxCodedExtent{ maxCodedExtent_ }
+ , referencePictureFormat{ referencePictureFormat_ }
+ , maxDpbSlots{ maxDpbSlots_ }
+ , maxActiveReferencePictures{ maxActiveReferencePictures_ }
+ , pStdHeaderVersion{ pStdHeaderVersion_ }
{
}
@@ -124532,9 +125024,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( uint32_t memoryBindIndex_ = {},
VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {},
void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , memoryBindIndex( memoryBindIndex_ )
- , memoryRequirements( memoryRequirements_ )
+ : pNext{ pNext_ }
+ , memoryBindIndex{ memoryBindIndex_ }
+ , memoryRequirements{ memoryRequirements_ }
{
}
@@ -124619,10 +125111,10 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ = {},
VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , videoSessionParametersTemplate( videoSessionParametersTemplate_ )
- , videoSession( videoSession_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , videoSessionParametersTemplate{ videoSessionParametersTemplate_ }
+ , videoSession{ videoSession_ }
{
}
@@ -124738,8 +125230,8 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( uint32_t updateSequenceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , updateSequenceCount( updateSequenceCount_ )
+ : pNext{ pNext_ }
+ , updateSequenceCount{ updateSequenceCount_ }
{
}
@@ -124838,10 +125330,10 @@ namespace VULKAN_HPP_NAMESPACE
struct wl_display * display_ = {},
struct wl_surface * surface_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , display( display_ )
- , surface( surface_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , display{ display_ }
+ , surface{ surface_ }
{
}
@@ -124963,14 +125455,14 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
const uint64_t * pReleaseKeys_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , acquireCount( acquireCount_ )
- , pAcquireSyncs( pAcquireSyncs_ )
- , pAcquireKeys( pAcquireKeys_ )
- , pAcquireTimeouts( pAcquireTimeouts_ )
- , releaseCount( releaseCount_ )
- , pReleaseSyncs( pReleaseSyncs_ )
- , pReleaseKeys( pReleaseKeys_ )
+ : pNext{ pNext_ }
+ , acquireCount{ acquireCount_ }
+ , pAcquireSyncs{ pAcquireSyncs_ }
+ , pAcquireKeys{ pAcquireKeys_ }
+ , pAcquireTimeouts{ pAcquireTimeouts_ }
+ , releaseCount{ releaseCount_ }
+ , pReleaseSyncs{ pReleaseSyncs_ }
+ , pReleaseKeys{ pReleaseKeys_ }
{
}
@@ -125228,14 +125720,14 @@ namespace VULKAN_HPP_NAMESPACE
const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
const uint64_t * pReleaseKeys_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , acquireCount( acquireCount_ )
- , pAcquireSyncs( pAcquireSyncs_ )
- , pAcquireKeys( pAcquireKeys_ )
- , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
- , releaseCount( releaseCount_ )
- , pReleaseSyncs( pReleaseSyncs_ )
- , pReleaseKeys( pReleaseKeys_ )
+ : pNext{ pNext_ }
+ , acquireCount{ acquireCount_ }
+ , pAcquireSyncs{ pAcquireSyncs_ }
+ , pAcquireKeys{ pAcquireKeys_ }
+ , pAcquireTimeoutMilliseconds{ pAcquireTimeoutMilliseconds_ }
+ , releaseCount{ releaseCount_ }
+ , pReleaseSyncs{ pReleaseSyncs_ }
+ , pReleaseKeys{ pReleaseKeys_ }
{
}
@@ -125492,10 +125984,10 @@ namespace VULKAN_HPP_NAMESPACE
HINSTANCE hinstance_ = {},
HWND hwnd_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , hinstance( hinstance_ )
- , hwnd( hwnd_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , hinstance{ hinstance_ }
+ , hwnd{ hwnd_ }
{
}
@@ -125611,9 +126103,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( uint32_t accelerationStructureCount_ = {},
const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructureCount( accelerationStructureCount_ )
- , pAccelerationStructures( pAccelerationStructures_ )
+ : pNext{ pNext_ }
+ , accelerationStructureCount{ accelerationStructureCount_ }
+ , pAccelerationStructures{ pAccelerationStructures_ }
{
}
@@ -125742,9 +126234,9 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = {},
const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , accelerationStructureCount( accelerationStructureCount_ )
- , pAccelerationStructures( pAccelerationStructures_ )
+ : pNext{ pNext_ }
+ , accelerationStructureCount{ accelerationStructureCount_ }
+ , pAccelerationStructures{ pAccelerationStructures_ }
{
}
@@ -125872,9 +126364,9 @@ namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR
WriteDescriptorSetInlineUniformBlock( uint32_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , dataSize( dataSize_ )
- , pData( pData_ )
+ : pNext{ pNext_ }
+ , dataSize{ dataSize_ }
+ , pData{ pData_ }
{
}
@@ -126000,10 +126492,10 @@ namespace VULKAN_HPP_NAMESPACE
xcb_connection_t * connection_ = {},
xcb_window_t window_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , connection( connection_ )
- , window( window_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , connection{ connection_ }
+ , window{ window_ }
{
}
@@ -126132,10 +126624,10 @@ namespace VULKAN_HPP_NAMESPACE
Display * dpy_ = {},
Window window_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
- : pNext( pNext_ )
- , flags( flags_ )
- , dpy( dpy_ )
- , window( window_ )
+ : pNext{ pNext_ }
+ , flags{ flags_ }
+ , dpy{ dpy_ }
+ , window{ window_ }
{
}
diff --git a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp
index 011f7874f5..1c9647933f 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp
+++ b/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_to_string.hpp
@@ -4484,6 +4484,8 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV: return "PhysicalDeviceExtendedSparseAddressSpacePropertiesNV";
case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT: return "PhysicalDeviceMutableDescriptorTypeFeaturesEXT";
case StructureType::eMutableDescriptorTypeCreateInfoEXT: return "MutableDescriptorTypeCreateInfoEXT";
+ case StructureType::ePhysicalDeviceLegacyVertexAttributesFeaturesEXT: return "PhysicalDeviceLegacyVertexAttributesFeaturesEXT";
+ case StructureType::ePhysicalDeviceLegacyVertexAttributesPropertiesEXT: return "PhysicalDeviceLegacyVertexAttributesPropertiesEXT";
case StructureType::eLayerSettingsCreateInfoEXT: return "LayerSettingsCreateInfoEXT";
case StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM: return "PhysicalDeviceShaderCoreBuiltinsFeaturesARM";
case StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM: return "PhysicalDeviceShaderCoreBuiltinsPropertiesARM";
@@ -4552,6 +4554,9 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePhysicalDeviceRawAccessChainsFeaturesNV: return "PhysicalDeviceRawAccessChainsFeaturesNV";
case StructureType::ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV: return "PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV";
case StructureType::ePhysicalDeviceRayTracingValidationFeaturesNV: return "PhysicalDeviceRayTracingValidationFeaturesNV";
+ case StructureType::ePhysicalDeviceImageAlignmentControlFeaturesMESA: return "PhysicalDeviceImageAlignmentControlFeaturesMESA";
+ case StructureType::ePhysicalDeviceImageAlignmentControlPropertiesMESA: return "PhysicalDeviceImageAlignmentControlPropertiesMESA";
+ case StructureType::eImageAlignmentControlCreateInfoMESA: return "ImageAlignmentControlCreateInfoMESA";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/cgenerator.py b/third_party/vulkan-deps/vulkan-headers/src/registry/cgenerator.py
index f86658ee00..8192c182ec 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/cgenerator.py
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/cgenerator.py
@@ -243,7 +243,7 @@ class COutputGenerator(OutputGenerator):
if self.genOpts.conventions is None:
raise MissingGeneratorOptionsConventionsError()
is_core = self.featureName and self.featureName.startswith(self.conventions.api_prefix + 'VERSION_')
- if self.genOpts.conventions.writeFeature(self.featureExtraProtect, self.genOpts.filename):
+ if self.genOpts.conventions.writeFeature(self.featureName, self.featureExtraProtect, self.genOpts.filename):
self.newline()
if self.genOpts.protectFeature:
write('#ifndef', self.featureName, file=self.outFile)
@@ -507,7 +507,7 @@ class COutputGenerator(OutputGenerator):
self.appendSection('commandPointer', decls[1])
def misracstyle(self):
- return self.genOpts.misracstyle;
+ return self.genOpts.misracstyle
def misracppstyle(self):
- return self.genOpts.misracppstyle;
+ return self.genOpts.misracppstyle
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/generator.py b/third_party/vulkan-deps/vulkan-headers/src/registry/generator.py
index dea2ffa373..3acfd85ef0 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/generator.py
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/generator.py
@@ -65,7 +65,7 @@ def regSortCategoryKey(feature):
else:
return 0
- if feature.category.upper() in ['ARB', 'KHR', 'OES']:
+ if feature.category.upper() in ('ARB', 'KHR', 'OES'):
return 1
return 2
@@ -860,7 +860,7 @@ class OutputGenerator:
"""Create a directory, if not already done.
Generally called from derived generators creating hierarchies."""
- self.logMsg('diag', 'OutputGenerator::makeDir(' + path + ')')
+ self.logMsg('diag', 'OutputGenerator::makeDir(', path, ')')
if path not in self.madeDirs:
# This can get race conditions with multiple writers, see
# https://stackoverflow.com/questions/273192/
@@ -919,11 +919,11 @@ class OutputGenerator:
# On successfully generating output, move the temporary file to the
# target file.
if self.genOpts.filename is not None:
+ directory = Path(self.genOpts.directory)
if sys.platform == 'win32':
- directory = Path(self.genOpts.directory)
if not Path.exists(directory):
os.makedirs(directory)
- shutil.copy(self.outFile.name, self.genOpts.directory + '/' + self.genOpts.filename)
+ shutil.copy(self.outFile.name, directory / self.genOpts.filename)
os.remove(self.outFile.name)
self.genOpts = None
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/reg.py b/third_party/vulkan-deps/vulkan-headers/src/registry/reg.py
index b8f8af7ce8..971584533b 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/reg.py
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/reg.py
@@ -436,6 +436,12 @@ class Registry:
self.cmddict = {}
"dictionary of CmdInfo objects keyed by command name"
+ self.aliasdict = {}
+ "dictionary of type and command names mapped to their alias, such as VkFooKHR -> VkFoo"
+
+ self.enumvaluedict = {}
+ "dictionary of enum values mapped to their type, such as VK_FOO_VALUE -> VkFoo"
+
self.apidict = {}
"dictionary of FeatureInfo objects for `<feature>` elements keyed by API name"
@@ -548,6 +554,22 @@ class Registry:
"""Specify a feature name regexp to break on when generating features."""
self.breakPat = re.compile(regexp)
+ def addEnumValue(self, enum, type_name):
+ """Track aliasing and map back from enum values to their type"""
+ # Record alias, if any
+ value = enum.get('name')
+ alias = enum.get('alias')
+ if alias:
+ self.aliasdict[value] = alias
+ # Map the value back to the type
+ if type_name in self.aliasdict:
+ type_name = self.aliasdict[type_name]
+ if value in self.enumvaluedict:
+ # Some times the same enum is defined by multiple extensions
+ assert(type_name == self.enumvaluedict[value])
+ else:
+ self.enumvaluedict[value] = type_name
+
def parseTree(self):
"""Parse the registry Element, once created"""
# This must be the Element for the root <registry>
@@ -571,6 +593,9 @@ class Registry:
else:
stripNonmatchingAPIs(self.reg, self.genOpts.apiname, actuallyDelete = True)
+ self.aliasdict = {}
+ self.enumvaluedict = {}
+
# Create dictionary of registry types from toplevel <types> tags
# and add 'name' attribute to each <type> tag (where missing)
# based on its <name> element.
@@ -581,13 +606,20 @@ class Registry:
for type_elem in self.reg.findall('types/type'):
# If the <type> does not already have a 'name' attribute, set
# it from contents of its <name> tag.
- if type_elem.get('name') is None:
+ name = type_elem.get('name')
+ if name is None:
name_elem = type_elem.find('name')
if name_elem is None or not name_elem.text:
raise RuntimeError("Type without a name!")
- type_elem.set('name', name_elem.text)
+ name = name_elem.text
+ type_elem.set('name', name)
self.addElementInfo(type_elem, TypeInfo(type_elem), 'type', self.typedict)
+ # Record alias, if any
+ alias = type_elem.get('alias')
+ if alias:
+ self.aliasdict[name] = alias
+
# Create dictionary of registry enum groups from <enums> tags.
#
# Required <enums> attributes: 'name'. If no name is given, one is
@@ -609,10 +641,14 @@ class Registry:
self.enumdict = {}
for enums in self.reg.findall('enums'):
required = (enums.get('type') is not None)
+ type_name = enums.get('name')
+ # Enum values are defined only for the type that is not aliased to something else.
+ assert(type_name not in self.aliasdict)
for enum in enums.findall('enum'):
enumInfo = EnumInfo(enum)
enumInfo.required = required
self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
+ self.addEnumValue(enum, type_name)
# Create dictionary of registry commands from <command> tags
# and add 'name' attribute to each <command> tag (where missing)
@@ -622,7 +658,7 @@ class Registry:
# Required <command> attributes: 'name' or <proto><name> tag contents
self.cmddict = {}
# List of commands which alias others. Contains
- # [ aliasName, element ]
+ # [ name, aliasName, element ]
# for each alias
cmdAlias = []
for cmd in self.reg.findall('commands/command'):
@@ -639,6 +675,7 @@ class Registry:
alias = cmd.get('alias')
if alias:
cmdAlias.append([name, alias, cmd])
+ self.aliasdict[name] = alias
# Now loop over aliases, injecting a copy of the aliased command's
# Element with the aliased prototype name replaced with the command
@@ -713,6 +750,7 @@ class Registry:
if addEnumInfo:
enumInfo = EnumInfo(enum)
self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
+ self.addEnumValue(enum, groupName)
sync_pipeline_stage_condition = dict()
sync_access_condition = dict()
@@ -791,6 +829,7 @@ class Registry:
if addEnumInfo:
enumInfo = EnumInfo(enum)
self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
+ self.addEnumValue(enum, groupName)
# Parse out all spirv tags in dictionaries
# Use addElementInfo to catch duplicates
@@ -1154,6 +1193,8 @@ class Registry:
# Resolve the type info to the actual type, so we get an accurate read for 'structextends'
while alias:
typeinfo = self.lookupElementInfo(alias, self.typedict)
+ if not typeinfo:
+ raise RuntimeError(f"Missing alias {alias}")
alias = typeinfo.elem.get('alias')
typecat = typeinfo.elem.get('category')
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/conventions.py b/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/conventions.py
index 50ca75d415..9c583f56f8 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/conventions.py
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/conventions.py
@@ -153,6 +153,11 @@ class ConventionsBase(abc.ABC):
return 'code:'
@property
+ def allows_x_number_suffix(self):
+ """Whether vendor tags can be suffixed with X and a number to mark experimental extensions."""
+ return False
+
+ @property
@abc.abstractmethod
def structtype_member_name(self):
"""Return name of the structure type member.
@@ -213,7 +218,7 @@ class ConventionsBase(abc.ABC):
Do not edit these defaults, override self.makeProseList().
"""
- assert(serial_comma) # did not implement what we did not need
+ assert serial_comma # did not implement what we did not need
if isinstance(fmt, str):
fmt = ProseListFormats.from_string(fmt)
@@ -366,7 +371,7 @@ class ConventionsBase(abc.ABC):
May override."""
return self.api_prefix + 'EXT_'
- def writeFeature(self, featureExtraProtect, filename):
+ def writeFeature(self, featureName, featureExtraProtect, filename):
"""Return True if OutputGenerator.endFeature should write this feature.
Defaults to always True.
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/util.py b/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/util.py
index e67038a5ae..b1ac5d2dbb 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/util.py
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/spec_tools/util.py
@@ -1,6 +1,7 @@
"""Utility functions not closely tied to other spec_tools types."""
# Copyright (c) 2018-2019 Collabora, Ltd.
# Copyright 2013-2024 The Khronos Group Inc.
+#
# SPDX-License-Identifier: Apache-2.0
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/validusage.json b/third_party/vulkan-deps/vulkan-headers/src/registry/validusage.json
index 57e71a4406..ef38532c68 100644
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/validusage.json
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.283",
- "comment": "from git branch: github-main commit: dedb71a7edc6d5af3f9bfd5e2ef53814de999ef7",
- "date": "2024-04-19 06:43:10Z"
+ "api version": "1.3.285",
+ "comment": "from git branch: github-main commit: 8fc686b6321f035dc4a589e5ec1dc67208a71ac2",
+ "date": "2024-05-10 08:10:25Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -369,7 +369,7 @@
},
{
"vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext",
- "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
+ "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlPropertiesMESA\">VkPhysicalDeviceImageAlignmentControlPropertiesMESA</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT\">VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
"page": "vkspec"
},
{
@@ -886,7 +886,7 @@
},
{
"vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
- "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
+ "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlFeaturesMESA\">VkPhysicalDeviceImageAlignmentControlFeaturesMESA</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT\">VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
"page": "vkspec"
},
{
@@ -16808,7 +16808,12 @@
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09531",
- "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output state</a>, and the value of <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>::<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>",
+ "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output state</a>, the value of <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a> is included, <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>::<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-09652",
+ "text": "If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output state</a>, the value of <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a> is not included, the fragment shader <strong class=\"purple\">must</strong> not contain any input attachments with a <code>InputAttachmentIndex</code> greater than or equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>",
"page": "vkspec"
},
{
@@ -20752,7 +20757,7 @@
},
{
"vuid": "VUID-VkMemoryMapInfoKHR-flags-09572",
- "text": "If <code>VK_MEMORY_MAP_PLACED_BIT_EXT</code> is set in <code>flags</code> and the <a href=\"#features-memoryMapRangePlaced\"><code>memoryMapRangePlaced</code></a> feature is not enabled, <code>size</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code>",
+ "text": "If <code>VK_MEMORY_MAP_PLACED_BIT_EXT</code> is set in <code>flags</code> and the <a href=\"#features-memoryMapRangePlaced\"><code>memoryMapRangePlaced</code></a> feature is not enabled, <code>size</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code> or <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code>",
"page": "vkspec"
},
{
@@ -20762,7 +20767,12 @@
},
{
"vuid": "VUID-VkMemoryMapInfoKHR-flags-09574",
- "text": "If <code>VK_MEMORY_MAP_PLACED_BIT_EXT</code> is set in <code>flags</code> and the <a href=\"#features-memoryMapRangePlaced\"><code>memoryMapRangePlaced</code></a> feature is enabled, <code>size</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code> or be aligned to an integer multiple of <code>VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</code>::<code>minPlacedMemoryMapAlignment</code>",
+ "text": "If <code>VK_MEMORY_MAP_PLACED_BIT_EXT</code> is set in <code>flags</code> and <code>size</code> is not <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be aligned to an integer multiple of <code>VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</code>::<code>minPlacedMemoryMapAlignment</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkMemoryMapInfoKHR-flags-09651",
+ "text": "If <code>VK_MEMORY_MAP_PLACED_BIT_EXT</code> is set in <code>flags</code> and <code>size</code> is <code>VK_WHOLE_SIZE</code>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> be aligned to an integer multiple of <code>VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</code>::<code>minPlacedMemoryMapAlignment</code>",
"page": "vkspec"
},
{
@@ -22286,13 +22296,23 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkImageCreateInfo-pNext-09653",
+ "text": "If the <code>pNext</code> chain contains a <a href=\"#VkImageAlignmentControlCreateInfoMESA\">VkImageAlignmentControlCreateInfoMESA</a> structure, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-pNext-09654",
+ "text": "If the <code>pNext</code> chain contains a <a href=\"#VkImageAlignmentControlCreateInfoMESA\">VkImageAlignmentControlCreateInfoMESA</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkImageCreateInfo-sType-sType",
"text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkImageCreateInfo-pNext-pNext",
- "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>, <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a>, <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>, <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>, <a href=\"#VkImportMetalIOSurfaceInfoEXT\">VkImportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
+ "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>, <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>, <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalFormatQNX\">VkExternalFormatQNX</a>, <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>, <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>, <a href=\"#VkImageAlignmentControlCreateInfoMESA\">VkImageAlignmentControlCreateInfoMESA</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>, <a href=\"#VkImportMetalIOSurfaceInfoEXT\">VkImportMetalIOSurfaceInfoEXT</a>, <a href=\"#VkImportMetalTextureInfoEXT\">VkImportMetalTextureInfoEXT</a>, <a href=\"#VkOpaqueCaptureDescriptorDataCreateInfoEXT\">VkOpaqueCaptureDescriptorDataCreateInfoEXT</a>, <a href=\"#VkOpticalFlowImageFormatInfoNV\">VkOpticalFlowImageFormatInfoNV</a>, or <a href=\"#VkVideoProfileListInfoKHR\">VkVideoProfileListInfoKHR</a>",
"page": "vkspec"
},
{
@@ -22594,6 +22614,30 @@
}
]
},
+ "VkImageAlignmentControlCreateInfoMESA": {
+ "core": [
+ {
+ "vuid": "VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09655",
+ "text": "If <code>maximumRequestedAlignment</code> is not 0, <code>maximumRequestedAlignment</code> <strong class=\"purple\">must</strong> be a power of two",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkImageAlignmentControlCreateInfoMESA-maximumRequestedAlignment-09656",
+ "text": "If <code>maximumRequestedAlignment</code> is not 0, the bitwise-and of <code>maximumRequestedAlignment</code> and <a href=\"#limits-supportedImageAlignmentMask\"><code>supportedImageAlignmentMask</code></a> <strong class=\"purple\">must</strong> be non-zero",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkImageAlignmentControlCreateInfoMESA-imageAlignmentControl-09657",
+ "text": "<a href=\"#features-imageAlignmentControl\"><code>imageAlignmentControl</code></a> <strong class=\"purple\">must</strong> be enabled on the device",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkImageAlignmentControlCreateInfoMESA-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkGetImageSubresourceLayout": {
"core": [
{
@@ -43130,7 +43174,7 @@
},
{
"vuid": "VUID-vkCmdDraw-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -44984,7 +45028,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -46853,7 +46897,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -48727,7 +48771,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -50606,7 +50650,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -52514,7 +52558,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -54428,7 +54472,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -56351,7 +56395,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -58275,7 +58319,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -79111,7 +79155,7 @@
},
{
"vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427",
- "text": "If any of <code>baseGroupX</code>, <code>baseGroupY</code>, or <code>baseGroupZ</code> are not zero, then the bound compute pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag",
+ "text": "If any of <code>baseGroupX</code>, <code>baseGroupY</code>, or <code>baseGroupZ</code> are not zero, then the bound compute pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag or the bound compute shader object <strong class=\"purple\">must</strong> have been created with the <code>VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT</code> flag",
"page": "vkspec"
},
{
@@ -81908,7 +81952,7 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled and either <a href=\"#features-legacyVertexAttributes\"><code>legacyVertexAttributes</code></a> is not enabled or the SPIR-V Type associated with a given <code>Input</code> variable of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> is 64-bit, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> <code>Execution</code> <code>Model</code> <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>",
"page": "vkspec"
},
{
@@ -99287,6 +99331,15 @@
}
]
},
+ "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDeviceTextureCompressionASTCHDRFeatures": {
"core": [
{
@@ -100386,6 +100439,15 @@
}
]
},
+ "VkPhysicalDeviceImageAlignmentControlFeaturesMESA": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceImageAlignmentControlFeaturesMESA-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDevicePushDescriptorPropertiesKHR": {
"core": [
{
@@ -100431,6 +100493,15 @@
}
]
},
+ "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDeviceExternalMemoryHostPropertiesEXT": {
"core": [
{
@@ -101085,6 +101156,15 @@
}
]
},
+ "VkPhysicalDeviceImageAlignmentControlPropertiesMESA": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceImageAlignmentControlPropertiesMESA-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkGetPhysicalDeviceMultisamplePropertiesEXT": {
"core": [
{
@@ -103072,6 +103152,16 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-StandaloneSpirv-OpEntryPoint-09658",
+ "text": "For a given <code>OpEntryPoint</code>, any <code>BuiltIn</code> decoration <strong class=\"purple\">must</strong> not be used more than once by the <code>Input</code> interface.",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-StandaloneSpirv-OpEntryPoint-09659",
+ "text": "For a given <code>OpEntryPoint</code>, any <code>BuiltIn</code> decoration <strong class=\"purple\">must</strong> not be used more than once by the <code>Output</code> interface.",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-StandaloneSpirv-Location-06672",
"text": "The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> only be used with the <code>Input</code>, <code>Output</code>, <code>RayPayloadKHR</code>, <code>IncomingRayPayloadKHR</code>, <code>HitAttributeKHR</code>, <code>HitObjectAttributeNV</code>, <code>CallableDataKHR</code>, <code>IncomingCallableDataKHR</code>, or <code>ShaderRecordBufferKHR</code> storage classes",
"page": "vkspec"
diff --git a/third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml b/third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml
index b14d3dc3ad..aa8c8ee286 100755
--- a/third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml
+++ b/third_party/vulkan-deps/vulkan-headers/src/registry/vk.xml
@@ -67,7 +67,7 @@ branch of the member gitlab server.
<tag name="KHR" author="Khronos" contact="Tom Olson @tomolson"/>
<tag name="KHX" author="Khronos" contact="Tom Olson @tomolson"/>
<tag name="EXT" author="Multivendor" contact="Jon Leech @oddhack"/>
- <tag name="MESA" author="Mesa open source project" contact="Lina Versace @versalinyaa, Daniel Stone @fooishbar, David Airlie @airlied, Faith Ekstrand @gfxstrand"/>
+ <tag name="MESA" author="Mesa open source project" contact="Lina Versace @versalinyaa, Daniel Stone @fooishbar, David Airlie @airlied, Faith Ekstrand @gfxstrand, Hans-Kristian Arntzen @HansKristian-Work"/>
<tag name="INTEL" author="Intel Corporation" contact="Slawek Grajewski @sgrajewski"/>
<tag name="HUAWEI" author="Huawei Technologies Co. Ltd." contact="Pan Gao @PanGao-h, Juntao Li @Lawrenceleehw"/>
<tag name="VALVE" author="Valve Corporation" contact="Pierre-Loup Griffais @plagman, Joshua Ashton @Joshua-Ashton, Hans-Kristian Arntzen @HansKristian-Work"/>
@@ -175,7 +175,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 283</type>
+#define <name>VK_HEADER_VERSION</name> 285</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -6258,6 +6258,16 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>attachmentFeedbackLoopDynamicState</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>legacyVertexAttributes</name></member>
+ </type>
+ <type category="struct" name="VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT" structextends="VkPhysicalDeviceProperties2">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>nativeUnalignedPerformance</name></member>
+ </type>
<type category="struct" name="VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
@@ -9113,6 +9123,21 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>shaderRawAccessChains</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceImageAlignmentControlFeaturesMESA" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>imageAlignmentControl</name></member>
+ </type>
+ <type category="struct" name="VkPhysicalDeviceImageAlignmentControlPropertiesMESA" structextends="VkPhysicalDeviceProperties2">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member limittype="bitmask"><type>uint32_t</type> <name>supportedImageAlignmentMask</name></member>
+ </type>
+ <type category="struct" name="VkImageAlignmentControlCreateInfoMESA" structextends="VkImageCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>maximumRequestedAlignment</name></member>
+ </type>
</types>
@@ -19571,7 +19596,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDevice8BitStorageFeaturesKHR"/>
</require>
</extension>
- <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Daniel Rakos @drakos-amd" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_external_memory_host&quot;" name="VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME"/>
@@ -19972,7 +19997,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/>
</require>
</extension>
- <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Matthaeus G. Chajdas @anteru" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" contact="Matthaeus G. Chajdas @anteru" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_PCI_BUS_INFO_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_pci_bus_info&quot;" name="VK_EXT_PCI_BUS_INFO_EXTENSION_NAME"/>
@@ -20215,7 +20240,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_spirv_1_4&quot;" name="VK_KHR_SPIRV_1_4_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_memory_budget" number="238" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_memory_budget" number="238" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_MEMORY_BUDGET_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_memory_budget&quot;" name="VK_EXT_MEMORY_BUDGET_EXTENSION_NAME"/>
@@ -20397,7 +20422,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" depends="VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_ycbcr_image_arrays&quot;" name="VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME"/>
@@ -20686,7 +20711,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkUnmapMemory2KHR"/>
</require>
</extension>
- <extension name="VK_EXT_map_memory_placed" number="273" type="device" depends="VK_KHR_map_memory2" author="EXT" contact="Faith Ekstrand @gfxstrand" supported="vulkan">
+ <extension name="VK_EXT_map_memory_placed" number="273" type="device" depends="VK_KHR_map_memory2" author="EXT" contact="Faith Ekstrand @gfxstrand" supported="vulkan" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_map_memory_placed&quot;" name="VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME"/>
@@ -21884,7 +21909,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPipelineViewportDepthClipControlCreateInfoEXT"/>
</require>
</extension>
- <extension name="VK_EXT_primitive_topology_list_restart" number="357" type="device" author="EXT" contact="Shahbaz Youssefi @syoussefi" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" supported="vulkan" specialuse="glemulation">
+ <extension name="VK_EXT_primitive_topology_list_restart" number="357" type="device" author="EXT" contact="Shahbaz Youssefi @syoussefi" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" supported="vulkan" ratified="vulkan" specialuse="glemulation">
<require>
<enum value="1" name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_primitive_topology_list_restart&quot;" name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME"/>
@@ -23676,10 +23701,14 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkMutableDescriptorTypeCreateInfoEXT"/>
</require>
</extension>
- <extension name="VK_EXT_extension_496" number="496" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
+ <extension name="VK_EXT_legacy_vertex_attributes" number="496" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="vulkan" depends="VK_EXT_vertex_input_dynamic_state" specialuse="glemulation">
<require>
- <enum value="0" name="VK_EXT_EXTENSION_496_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_496&quot;" name="VK_EXT_EXTENSION_496_EXTENSION_NAME"/>
+ <enum value="1" name="VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_legacy_vertex_attributes&quot;" name="VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT"/>
+ <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT"/>
+ <type name="VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT"/>
+ <type name="VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT"/>
</require>
</extension>
<extension name="VK_EXT_layer_settings" number="497" author="EXT" contact="Christophe Riccio @christophe" type="instance" supported="vulkan" ratified="vulkan">
@@ -24357,10 +24386,16 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_extension_575&quot;" name="VK_KHR_EXTENSION_575_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_VALVE_extension_576" number="576" author="VALVE" contact="Hans-Kristian Arntzen @HansKristian-Work" supported="disabled">
+ <extension name="VK_MESA_image_alignment_control" number="576" type="device" author="MESA" contact="Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" supported="vulkan" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1">
<require>
- <enum value="0" name="VK_VALVE_EXTENSION_576_SPEC_VERSION"/>
- <enum value="&quot;VK_VALVE_extension_576&quot;" name="VK_VALVE_EXTENSION_576_EXTENSION_NAME"/>
+ <enum value="1" name="VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION"/>
+ <enum value="&quot;VK_MESA_image_alignment_control&quot;" name="VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME"/>
+ <type name="VkPhysicalDeviceImageAlignmentControlFeaturesMESA"/>
+ <type name="VkPhysicalDeviceImageAlignmentControlPropertiesMESA"/>
+ <type name="VkImageAlignmentControlCreateInfoMESA"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA"/>
+ <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA"/>
+ <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA"/>
</require>
</extension>
<extension name="VK_HUAWEI_extension_577" number="577" author="HUAWEI" contact="Ye Wang @wangye" supported="disabled">
@@ -24370,6 +24405,63 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="35" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_RESERVED_35_BIT_KHR"/>
</require>
</extension>
+ <extension name="VK_EXT_extension_578" number="578" author="EXT" contact="Daniel Story @daniel-story" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_578_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_578&quot;" name="VK_EXT_EXTENSION_578_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_579" number="579" author="EXT" contact="Daniel Story @daniel-story" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_579_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_579&quot;" name="VK_EXT_EXTENSION_579_EXTENSION_NAME"/>
+ <enum bitpos="8" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_RESERVED_8_BIT_EXT"/>
+ <enum bitpos="9" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_RESERVED_9_BIT_EXT"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_580" number="580" author="EXT" contact="Graeme Leese @gnl21" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_580_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_580&quot;" name="VK_EXT_EXTENSION_580_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_NV_extension_581" number="581" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
+ <require>
+ <enum value="0" name="VK_NV_EXTENSION_581_SPEC_VERSION"/>
+ <enum value="&quot;VK_NV_extension_581&quot;" name="VK_NV_EXTENSION_581_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_582" number="582" author="EXT" contact="Eric Werness @ewerness-nv" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_582_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_582&quot;" name="VK_EXT_EXTENSION_582_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_583" number="583" author="EXT" contact="Jules Blok @jules" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_583_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_583&quot;" name="VK_EXT_EXTENSION_583_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_584" number="584" author="EXT" contact="James Jones @cubanismo" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_584_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_584&quot;" name="VK_EXT_EXTENSION_584_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_585" number="585" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_585_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_585&quot;" name="VK_EXT_EXTENSION_585_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_IMG_extension_586" number="586" author="IMG" contact="James Fitzpatrick @jfitzpatrick-img" supported="disabled">
+ <require>
+ <enum value="0" name="VK_IMG_EXTENSION_586_SPEC_VERSION"/>
+ <enum value="&quot;VK_IMG_extension_586&quot;" name="VK_IMG_EXTENSION_586_EXTENSION_NAME"/>
+ <enum bitpos="4" extends="VkDependencyFlagBits" name="VK_DEPENDENCY_EXTENSION_586_BIT_IMG"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@@ -26502,6 +26594,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<spirvcapability name="RayTracingPositionFetchKHR">
<enable struct="VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR" feature="rayTracingPositionFetch" requires="VK_KHR_ray_tracing_position_fetch"/>
</spirvcapability>
+ <spirvcapability name="RayQueryPositionFetchKHR">
+ <enable struct="VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR" feature="rayTracingPositionFetch" requires="VK_KHR_ray_tracing_position_fetch"/>
+ </spirvcapability>
<spirvcapability name="TileImageColorReadAccessEXT">
<enable struct="VkPhysicalDeviceShaderTileImageFeaturesEXT" feature="shaderTileImageColorReadAccess" requires="VK_EXT_shader_tile_image"/>
</spirvcapability>
@@ -26529,9 +26624,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<spirvcapability name="QuadControlKHR">
<enable struct="VkPhysicalDeviceShaderQuadControlFeaturesKHR" feature="shaderQuadControl" requires="VK_KHR_shader_quad_control"/>
</spirvcapability>
- <spirvcapability name="MaximallyReconvergesKHR">
- <enable struct="VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR" feature="shaderMaximalReconvergence" requires="VK_KHR_shader_maximal_reconvergence"/>
- </spirvcapability>
<spirvcapability name="RawAccessChainsNV">
<enable struct="VkPhysicalDeviceRawAccessChainsFeaturesNV" feature="shaderRawAccessChains" requires="VK_NV_raw_access_chains"/>
</spirvcapability>
diff --git a/util/android/third_party/android_native_app_glue.c b/util/android/third_party/android_native_app_glue.c
index ad9c55816e..934e2f2b2a 100644
--- a/util/android/third_party/android_native_app_glue.c
+++ b/util/android/third_party/android_native_app_glue.c
@@ -12,18 +12,17 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
+#include "android_native_app_glue.h"
+
#include <jni.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <sys/resource.h>
-#include "android_native_app_glue.h"
#include <android/log.h>
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "threaded_app", __VA_ARGS__))
@@ -48,17 +47,12 @@ static void free_saved_state(struct android_app* android_app) {
int8_t android_app_read_cmd(struct android_app* android_app) {
int8_t cmd;
- if (read(android_app->msgread, &cmd, sizeof(cmd)) == sizeof(cmd)) {
- switch (cmd) {
- case APP_CMD_SAVE_STATE:
- free_saved_state(android_app);
- break;
- }
- return cmd;
- } else {
+ if (read(android_app->msgread, &cmd, sizeof(cmd)) != sizeof(cmd)) {
LOGE("No data on command pipe!");
+ return -1;
}
- return -1;
+ if (cmd == APP_CMD_SAVE_STATE) free_saved_state(android_app);
+ return cmd;
}
static void print_cur_config(struct android_app* android_app) {
@@ -89,7 +83,7 @@ static void print_cur_config(struct android_app* android_app) {
void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
switch (cmd) {
case APP_CMD_INPUT_CHANGED:
- LOGV("APP_CMD_INPUT_CHANGED\n");
+ LOGV("APP_CMD_INPUT_CHANGED");
pthread_mutex_lock(&android_app->mutex);
if (android_app->inputQueue != NULL) {
AInputQueue_detachLooper(android_app->inputQueue);
@@ -106,7 +100,7 @@ void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
break;
case APP_CMD_INIT_WINDOW:
- LOGV("APP_CMD_INIT_WINDOW\n");
+ LOGV("APP_CMD_INIT_WINDOW");
pthread_mutex_lock(&android_app->mutex);
android_app->window = android_app->pendingWindow;
pthread_cond_broadcast(&android_app->cond);
@@ -114,7 +108,7 @@ void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
break;
case APP_CMD_TERM_WINDOW:
- LOGV("APP_CMD_TERM_WINDOW\n");
+ LOGV("APP_CMD_TERM_WINDOW");
pthread_cond_broadcast(&android_app->cond);
break;
@@ -122,7 +116,7 @@ void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
case APP_CMD_START:
case APP_CMD_PAUSE:
case APP_CMD_STOP:
- LOGV("activityState=%d\n", cmd);
+ LOGV("activityState=%d", cmd);
pthread_mutex_lock(&android_app->mutex);
android_app->activityState = cmd;
pthread_cond_broadcast(&android_app->cond);
@@ -130,14 +124,14 @@ void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
break;
case APP_CMD_CONFIG_CHANGED:
- LOGV("APP_CMD_CONFIG_CHANGED\n");
+ LOGV("APP_CMD_CONFIG_CHANGED");
AConfiguration_fromAssetManager(android_app->config,
android_app->activity->assetManager);
print_cur_config(android_app);
break;
case APP_CMD_DESTROY:
- LOGV("APP_CMD_DESTROY\n");
+ LOGV("APP_CMD_DESTROY");
android_app->destroyRequested = 1;
break;
}
@@ -146,7 +140,7 @@ void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd) {
switch (cmd) {
case APP_CMD_TERM_WINDOW:
- LOGV("APP_CMD_TERM_WINDOW\n");
+ LOGV("APP_CMD_TERM_WINDOW");
pthread_mutex_lock(&android_app->mutex);
android_app->window = NULL;
pthread_cond_broadcast(&android_app->cond);
@@ -154,7 +148,7 @@ void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd) {
break;
case APP_CMD_SAVE_STATE:
- LOGV("APP_CMD_SAVE_STATE\n");
+ LOGV("APP_CMD_SAVE_STATE");
pthread_mutex_lock(&android_app->mutex);
android_app->stateSaved = 1;
pthread_cond_broadcast(&android_app->cond);
@@ -188,7 +182,7 @@ static void android_app_destroy(struct android_app* android_app) {
static void process_input(struct android_app* app, struct android_poll_source* source) {
AInputEvent* event = NULL;
while (AInputQueue_getEvent(app->inputQueue, &event) >= 0) {
- LOGV("New input event: type=%d\n", AInputEvent_getType(event));
+ LOGV("New input event: type=%d", AInputEvent_getType(event));
if (AInputQueue_preDispatchEvent(app->inputQueue, event)) {
continue;
}
@@ -241,9 +235,8 @@ static void* android_app_entry(void* param) {
// --------------------------------------------------------------------
static struct android_app* android_app_create(ANativeActivity* activity,
- void* savedState, size_t savedStateSize) {
- struct android_app* android_app = (struct android_app*)malloc(sizeof(struct android_app));
- memset(android_app, 0, sizeof(struct android_app));
+ void* savedState, size_t savedStateSize) {
+ struct android_app* android_app = calloc(1, sizeof(struct android_app));
android_app->activity = activity;
pthread_mutex_init(&android_app->mutex, NULL);
@@ -280,7 +273,7 @@ static struct android_app* android_app_create(ANativeActivity* activity,
static void android_app_write_cmd(struct android_app* android_app, int8_t cmd) {
if (write(android_app->msgwrite, &cmd, sizeof(cmd)) != sizeof(cmd)) {
- LOGE("Failure writing android_app cmd: %s\n", strerror(errno));
+ LOGE("Failure writing android_app cmd: %s", strerror(errno));
}
}
@@ -333,26 +326,30 @@ static void android_app_free(struct android_app* android_app) {
free(android_app);
}
+static struct android_app* ToApp(ANativeActivity* activity) {
+ return (struct android_app*) activity->instance;
+}
+
static void onDestroy(ANativeActivity* activity) {
- LOGV("Destroy: %p\n", activity);
- android_app_free((struct android_app*)activity->instance);
+ LOGV("Destroy: %p", activity);
+ android_app_free(ToApp(activity));
}
static void onStart(ANativeActivity* activity) {
- LOGV("Start: %p\n", activity);
- android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_START);
+ LOGV("Start: %p", activity);
+ android_app_set_activity_state(ToApp(activity), APP_CMD_START);
}
static void onResume(ANativeActivity* activity) {
- LOGV("Resume: %p\n", activity);
- android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_RESUME);
+ LOGV("Resume: %p", activity);
+ android_app_set_activity_state(ToApp(activity), APP_CMD_RESUME);
}
static void* onSaveInstanceState(ANativeActivity* activity, size_t* outLen) {
- struct android_app* android_app = (struct android_app*)activity->instance;
- void* savedState = NULL;
+ LOGV("SaveInstanceState: %p", activity);
- LOGV("SaveInstanceState: %p\n", activity);
+ struct android_app* android_app = ToApp(activity);
+ void* savedState = NULL;
pthread_mutex_lock(&android_app->mutex);
android_app->stateSaved = 0;
android_app_write_cmd(android_app, APP_CMD_SAVE_STATE);
@@ -373,69 +370,89 @@ static void* onSaveInstanceState(ANativeActivity* activity, size_t* outLen) {
}
static void onPause(ANativeActivity* activity) {
- LOGV("Pause: %p\n", activity);
- android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_PAUSE);
+ LOGV("Pause: %p", activity);
+ android_app_set_activity_state(ToApp(activity), APP_CMD_PAUSE);
}
static void onStop(ANativeActivity* activity) {
- LOGV("Stop: %p\n", activity);
- android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_STOP);
+ LOGV("Stop: %p", activity);
+ android_app_set_activity_state(ToApp(activity), APP_CMD_STOP);
}
static void onConfigurationChanged(ANativeActivity* activity) {
- struct android_app* android_app = (struct android_app*)activity->instance;
- LOGV("ConfigurationChanged: %p\n", activity);
- android_app_write_cmd(android_app, APP_CMD_CONFIG_CHANGED);
+ LOGV("ConfigurationChanged: %p", activity);
+ android_app_write_cmd(ToApp(activity), APP_CMD_CONFIG_CHANGED);
+}
+
+static void onContentRectChanged(ANativeActivity* activity, const ARect* r) {
+ LOGV("ContentRectChanged: l=%d,t=%d,r=%d,b=%d", r->left, r->top, r->right, r->bottom);
+ struct android_app* android_app = ToApp(activity);
+ pthread_mutex_lock(&android_app->mutex);
+ android_app->contentRect = *r;
+ pthread_mutex_unlock(&android_app->mutex);
+ android_app_write_cmd(ToApp(activity), APP_CMD_CONTENT_RECT_CHANGED);
}
static void onLowMemory(ANativeActivity* activity) {
- struct android_app* android_app = (struct android_app*)activity->instance;
- LOGV("LowMemory: %p\n", activity);
- android_app_write_cmd(android_app, APP_CMD_LOW_MEMORY);
+ LOGV("LowMemory: %p", activity);
+ android_app_write_cmd(ToApp(activity), APP_CMD_LOW_MEMORY);
}
static void onWindowFocusChanged(ANativeActivity* activity, int focused) {
- LOGV("WindowFocusChanged: %p -- %d\n", activity, focused);
- android_app_write_cmd((struct android_app*)activity->instance,
- focused ? APP_CMD_GAINED_FOCUS : APP_CMD_LOST_FOCUS);
+ LOGV("WindowFocusChanged: %p -- %d", activity, focused);
+ android_app_write_cmd(ToApp(activity), focused ? APP_CMD_GAINED_FOCUS : APP_CMD_LOST_FOCUS);
}
static void onNativeWindowCreated(ANativeActivity* activity, ANativeWindow* window) {
- LOGV("NativeWindowCreated: %p -- %p\n", activity, window);
- android_app_set_window((struct android_app*)activity->instance, window);
+ LOGI("NativeWindowCreated: %p -- %p", activity, window);
+ android_app_set_window(ToApp(activity), window);
}
static void onNativeWindowDestroyed(ANativeActivity* activity, ANativeWindow* window) {
- LOGV("NativeWindowDestroyed: %p -- %p\n", activity, window);
- android_app_set_window((struct android_app*)activity->instance, NULL);
+ LOGI("NativeWindowDestroyed: %p -- %p", activity, window);
+ android_app_set_window(ToApp(activity), NULL);
+}
+
+static void onNativeWindowRedrawNeeded(ANativeActivity* activity, ANativeWindow* window) {
+ LOGI("NativeWindowRedrawNeeded: %p -- %p", activity, window);
+ android_app_write_cmd(ToApp(activity), APP_CMD_WINDOW_REDRAW_NEEDED);
+}
+
+static void onNativeWindowResized(ANativeActivity* activity, ANativeWindow* window) {
+ LOGI("NativeWindowResized: %p -- %p", activity, window);
+ android_app_write_cmd(ToApp(activity), APP_CMD_WINDOW_RESIZED);
}
static void onInputQueueCreated(ANativeActivity* activity, AInputQueue* queue) {
- LOGV("InputQueueCreated: %p -- %p\n", activity, queue);
- android_app_set_input((struct android_app*)activity->instance, queue);
+ LOGV("InputQueueCreated: %p -- %p", activity, queue);
+ android_app_set_input(ToApp(activity), queue);
}
static void onInputQueueDestroyed(ANativeActivity* activity, AInputQueue* queue) {
- LOGV("InputQueueDestroyed: %p -- %p\n", activity, queue);
- android_app_set_input((struct android_app*)activity->instance, NULL);
+ LOGV("InputQueueDestroyed: %p -- %p", activity, queue);
+ android_app_set_input(ToApp(activity), NULL);
}
__attribute__((visibility("default"))) void ANativeActivity_onCreate(ANativeActivity* activity,
void* savedState, size_t savedStateSize) {
- LOGV("Creating: %p\n", activity);
+ LOGV("Creating: %p", activity);
+
+ activity->callbacks->onConfigurationChanged = onConfigurationChanged;
+ activity->callbacks->onContentRectChanged = onContentRectChanged;
activity->callbacks->onDestroy = onDestroy;
- activity->callbacks->onStart = onStart;
+ activity->callbacks->onInputQueueCreated = onInputQueueCreated;
+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyed;
+ activity->callbacks->onLowMemory = onLowMemory;
+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreated;
+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyed;
+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeeded;
+ activity->callbacks->onNativeWindowResized = onNativeWindowResized;
+ activity->callbacks->onPause = onPause;
activity->callbacks->onResume = onResume;
activity->callbacks->onSaveInstanceState = onSaveInstanceState;
- activity->callbacks->onPause = onPause;
+ activity->callbacks->onStart = onStart;
activity->callbacks->onStop = onStop;
- activity->callbacks->onConfigurationChanged = onConfigurationChanged;
- activity->callbacks->onLowMemory = onLowMemory;
activity->callbacks->onWindowFocusChanged = onWindowFocusChanged;
- activity->callbacks->onNativeWindowCreated = onNativeWindowCreated;
- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyed;
- activity->callbacks->onInputQueueCreated = onInputQueueCreated;
- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyed;
activity->instance = android_app_create(activity, savedState, savedStateSize);
}
diff --git a/util/android/third_party/android_native_app_glue.h b/util/android/third_party/android_native_app_glue.h
index c1e4d3cb47..304815f355 100644
--- a/util/android/third_party/android_native_app_glue.h
+++ b/util/android/third_party/android_native_app_glue.h
@@ -12,7 +12,6 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
#ifndef _ANDROID_NATIVE_APP_GLUE_H
@@ -49,7 +48,7 @@ extern "C" {
*
* 2/ android_main() receives a pointer to a valid "android_app" structure
* that contains references to other important objects, e.g. the
- * ANativeActivity obejct instance the application is running in.
+ * ANativeActivity object instance the application is running in.
*
* 3/ the "android_app" object holds an ALooper instance that already
* listens to two important things:
@@ -87,17 +86,18 @@ struct android_app;
* Data associated with an ALooper fd that will be returned as the "outData"
* when that source has data ready.
*/
-struct android_poll_source {
+struct android_poll_source
+{
// The identifier of this source. May be LOOPER_ID_MAIN or
// LOOPER_ID_INPUT.
int32_t id;
// The android_app this ident is associated with.
- struct android_app* app;
+ struct android_app *app;
// Function to call to perform the standard processing of data from
// this source.
- void (*process)(struct android_app* app, struct android_poll_source* source);
+ void (*process)(struct android_app *app, struct android_poll_source *source);
};
/**
@@ -108,25 +108,26 @@ struct android_poll_source {
* VM, although it will need to be in order to make JNI calls any
* Java objects.
*/
-struct android_app {
+struct android_app
+{
// The application can place a pointer to its own state object
// here if it likes.
- void* userData;
+ void *userData;
// Fill this in with the function to process main app commands (APP_CMD_*)
- void (*onAppCmd)(struct android_app* app, int32_t cmd);
+ void (*onAppCmd)(struct android_app *app, int32_t cmd);
// Fill this in with the function to process input events. At this point
// the event has already been pre-dispatched, and it will be finished upon
// return. Return 1 if you have handled the event, 0 for any default
// dispatching.
- int32_t (*onInputEvent)(struct android_app* app, AInputEvent* event);
+ int32_t (*onInputEvent)(struct android_app *app, AInputEvent *event);
// The ANativeActivity object instance that this app is running in.
- ANativeActivity* activity;
+ ANativeActivity *activity;
// The current configuration the app is running in.
- AConfiguration* config;
+ AConfiguration *config;
// This is the last instance's saved state, as provided at creation time.
// It is NULL if there was no state. You can use this as you need; the
@@ -136,18 +137,18 @@ struct android_app {
// at which point they will be initialized to NULL and you can malloc your
// state and place the information here. In that case the memory will be
// freed for you later.
- void* savedState;
+ void *savedState;
size_t savedStateSize;
// The ALooper associated with the app's thread.
- ALooper* looper;
+ ALooper *looper;
// When non-NULL, this is the input queue from which the app will
// receive user input events.
- AInputQueue* inputQueue;
+ AInputQueue *inputQueue;
// When non-NULL, this is the window surface that the app can draw in.
- ANativeWindow* window;
+ ANativeWindow *window;
// Current content rectangle of the window; this is the area where the
// window's content should be placed to be seen by the user.
@@ -179,12 +180,13 @@ struct android_app {
int stateSaved;
int destroyed;
int redrawNeeded;
- AInputQueue* pendingInputQueue;
- ANativeWindow* pendingWindow;
+ AInputQueue *pendingInputQueue;
+ ANativeWindow *pendingWindow;
ARect pendingContentRect;
};
-enum {
+enum
+{
/**
* Looper data ID of commands coming from the app's main thread, which
* is returned as an identifier from ALooper_pollOnce(). The data for this
@@ -209,7 +211,8 @@ enum {
LOOPER_ID_USER = 3,
};
-enum {
+enum
+{
/**
* Command from main thread: the AInputQueue has changed. Upon processing
* this command, android_app->inputQueue will be updated to the new queue
@@ -315,32 +318,37 @@ enum {
* Call when ALooper_pollAll() returns LOOPER_ID_MAIN, reading the next
* app command message.
*/
-int8_t android_app_read_cmd(struct android_app* android_app);
+int8_t android_app_read_cmd(struct android_app *android_app);
/**
* Call with the command returned by android_app_read_cmd() to do the
* initial pre-processing of the given command. You can perform your own
* actions for the command after calling this function.
*/
-void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd);
+void android_app_pre_exec_cmd(struct android_app *android_app, int8_t cmd);
/**
* Call with the command returned by android_app_read_cmd() to do the
* final post-processing of the given command. You must have done your own
* actions for the command before calling this function.
*/
-void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd);
+void android_app_post_exec_cmd(struct android_app *android_app, int8_t cmd);
/**
- * Dummy function you can call to ensure glue code isn't stripped.
+ * No-op function that used to be used to prevent the linker from stripping app
+ * glue code. No longer necessary, since __attribute__((visibility("default")))
+ * does this for us.
*/
-void app_dummy(void);
+__attribute__((
+ deprecated("Calls to app_dummy are no longer necessary. See "
+ "https://github.com/android-ndk/ndk/issues/381."))) void
+app_dummy(void);
/**
* This is the function that application code must implement, representing
* the main entry to the app.
*/
-extern void android_main(struct android_app* app);
+extern void android_main(struct android_app *app);
#ifdef __cplusplus
}
diff --git a/util/autogen/angle_features_autogen.cpp b/util/autogen/angle_features_autogen.cpp
index 89976fadf5..7758d320e9 100644
--- a/util/autogen/angle_features_autogen.cpp
+++ b/util/autogen/angle_features_autogen.cpp
@@ -366,6 +366,7 @@ constexpr PackedEnumMap<Feature, const char *> kFeatureNames = {{
{Feature::SupportsSharedPresentableImageExtension, "supportsSharedPresentableImageExtension"},
{Feature::SupportsSurfaceCapabilities2Extension, "supportsSurfaceCapabilities2Extension"},
{Feature::SupportsSurfacelessQueryExtension, "supportsSurfacelessQueryExtension"},
+ {Feature::SupportsSurfaceMaintenance1, "supportsSurfaceMaintenance1"},
{Feature::SupportsSurfaceProtectedCapabilitiesExtension, "supportsSurfaceProtectedCapabilitiesExtension"},
{Feature::SupportsSurfaceProtectedSwapchains, "supportsSurfaceProtectedSwapchains"},
{Feature::SupportsSwapchainMaintenance1, "supportsSwapchainMaintenance1"},
diff --git a/util/autogen/angle_features_autogen.h b/util/autogen/angle_features_autogen.h
index 0cadb2e2e9..54b4bd1c34 100644
--- a/util/autogen/angle_features_autogen.h
+++ b/util/autogen/angle_features_autogen.h
@@ -366,6 +366,7 @@ enum class Feature
SupportsSharedPresentableImageExtension,
SupportsSurfaceCapabilities2Extension,
SupportsSurfacelessQueryExtension,
+ SupportsSurfaceMaintenance1,
SupportsSurfaceProtectedCapabilitiesExtension,
SupportsSurfaceProtectedSwapchains,
SupportsSwapchainMaintenance1,
diff --git a/util/capture/trace_egl_loader_autogen.cpp b/util/capture/trace_egl_loader_autogen.cpp
index 9bac7e8fe3..f03882a325 100644
--- a/util/capture/trace_egl_loader_autogen.cpp
+++ b/util/capture/trace_egl_loader_autogen.cpp
@@ -76,6 +76,7 @@ ANGLE_TRACE_LOADER_EXPORT PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC t_eglReleaseExte
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDISPLAYATTRIBANGLEPROC t_eglQueryDisplayAttribANGLE;
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYSTRINGIANGLEPROC t_eglQueryStringiANGLE;
ANGLE_TRACE_LOADER_EXPORT PFNEGLCOPYMETALSHAREDEVENTANGLEPROC t_eglCopyMetalSharedEventANGLE;
+ANGLE_TRACE_LOADER_EXPORT PFNEGLSETVALIDATIONENABLEDANGLEPROC t_eglSetValidationEnabledANGLE;
ANGLE_TRACE_LOADER_EXPORT PFNEGLFORCEGPUSWITCHANGLEPROC t_eglForceGPUSwitchANGLE;
ANGLE_TRACE_LOADER_EXPORT PFNEGLHANDLEGPUSWITCHANGLEPROC t_eglHandleGPUSwitchANGLE;
ANGLE_TRACE_LOADER_EXPORT PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC t_eglReacquireHighPowerGPUANGLE;
@@ -229,6 +230,8 @@ void LoadTraceEGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYSTRINGIANGLEPROC>(loadProc("eglQueryStringiANGLE"));
t_eglCopyMetalSharedEventANGLE = reinterpret_cast<PFNEGLCOPYMETALSHAREDEVENTANGLEPROC>(
loadProc("eglCopyMetalSharedEventANGLE"));
+ t_eglSetValidationEnabledANGLE = reinterpret_cast<PFNEGLSETVALIDATIONENABLEDANGLEPROC>(
+ loadProc("eglSetValidationEnabledANGLE"));
t_eglForceGPUSwitchANGLE =
reinterpret_cast<PFNEGLFORCEGPUSWITCHANGLEPROC>(loadProc("eglForceGPUSwitchANGLE"));
t_eglHandleGPUSwitchANGLE =
diff --git a/util/capture/trace_egl_loader_autogen.h b/util/capture/trace_egl_loader_autogen.h
index bc11fa6e2b..1bd5750d51 100644
--- a/util/capture/trace_egl_loader_autogen.h
+++ b/util/capture/trace_egl_loader_autogen.h
@@ -77,6 +77,7 @@
#define eglQueryDisplayAttribANGLE t_eglQueryDisplayAttribANGLE
#define eglQueryStringiANGLE t_eglQueryStringiANGLE
#define eglCopyMetalSharedEventANGLE t_eglCopyMetalSharedEventANGLE
+#define eglSetValidationEnabledANGLE t_eglSetValidationEnabledANGLE
#define eglForceGPUSwitchANGLE t_eglForceGPUSwitchANGLE
#define eglHandleGPUSwitchANGLE t_eglHandleGPUSwitchANGLE
#define eglReacquireHighPowerGPUANGLE t_eglReacquireHighPowerGPUANGLE
@@ -203,6 +204,7 @@ ANGLE_TRACE_LOADER_EXPORT extern PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC t_eglQueryDisplayAttribANGLE;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC t_eglQueryStringiANGLE;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLCOPYMETALSHAREDEVENTANGLEPROC t_eglCopyMetalSharedEventANGLE;
+ANGLE_TRACE_LOADER_EXPORT extern PFNEGLSETVALIDATIONENABLEDANGLEPROC t_eglSetValidationEnabledANGLE;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLFORCEGPUSWITCHANGLEPROC t_eglForceGPUSwitchANGLE;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLHANDLEGPUSWITCHANGLEPROC t_eglHandleGPUSwitchANGLE;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC
diff --git a/util/capture/trace_interpreter_autogen.cpp b/util/capture/trace_interpreter_autogen.cpp
index aa10a34d20..6f5e03b2b7 100644
--- a/util/capture/trace_interpreter_autogen.cpp
+++ b/util/capture/trace_interpreter_autogen.cpp
@@ -624,6 +624,13 @@ CallCapture ParseCallCapture(const Token &nameToken,
strings);
return CallCapture(EntryPoint::EGLSetDamageRegionKHR, std::move(params));
}
+ if (strcmp(nameToken, "eglSetValidationEnabledANGLE") == 0)
+ {
+ ParamBuffer params =
+ ParseParameters<std::remove_pointer<PFNEGLSETVALIDATIONENABLEDANGLEPROC>::type>(
+ paramTokens, strings);
+ return CallCapture(EntryPoint::EGLSetValidationEnabledANGLE, std::move(params));
+ }
if (strcmp(nameToken, "eglSignalSyncKHR") == 0)
{
ParamBuffer params = ParseParameters<std::remove_pointer<PFNEGLSIGNALSYNCKHRPROC>::type>(
diff --git a/util/egl_loader_autogen.cpp b/util/egl_loader_autogen.cpp
index aba264b6f7..d845fab375 100644
--- a/util/egl_loader_autogen.cpp
+++ b/util/egl_loader_autogen.cpp
@@ -74,6 +74,7 @@ ANGLE_UTIL_EXPORT PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC l_eglReleaseExternalCont
ANGLE_UTIL_EXPORT PFNEGLQUERYDISPLAYATTRIBANGLEPROC l_eglQueryDisplayAttribANGLE;
ANGLE_UTIL_EXPORT PFNEGLQUERYSTRINGIANGLEPROC l_eglQueryStringiANGLE;
ANGLE_UTIL_EXPORT PFNEGLCOPYMETALSHAREDEVENTANGLEPROC l_eglCopyMetalSharedEventANGLE;
+ANGLE_UTIL_EXPORT PFNEGLSETVALIDATIONENABLEDANGLEPROC l_eglSetValidationEnabledANGLE;
ANGLE_UTIL_EXPORT PFNEGLFORCEGPUSWITCHANGLEPROC l_eglForceGPUSwitchANGLE;
ANGLE_UTIL_EXPORT PFNEGLHANDLEGPUSWITCHANGLEPROC l_eglHandleGPUSwitchANGLE;
ANGLE_UTIL_EXPORT PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC l_eglReacquireHighPowerGPUANGLE;
@@ -224,6 +225,8 @@ void LoadUtilEGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYSTRINGIANGLEPROC>(loadProc("eglQueryStringiANGLE"));
l_eglCopyMetalSharedEventANGLE = reinterpret_cast<PFNEGLCOPYMETALSHAREDEVENTANGLEPROC>(
loadProc("eglCopyMetalSharedEventANGLE"));
+ l_eglSetValidationEnabledANGLE = reinterpret_cast<PFNEGLSETVALIDATIONENABLEDANGLEPROC>(
+ loadProc("eglSetValidationEnabledANGLE"));
l_eglForceGPUSwitchANGLE =
reinterpret_cast<PFNEGLFORCEGPUSWITCHANGLEPROC>(loadProc("eglForceGPUSwitchANGLE"));
l_eglHandleGPUSwitchANGLE =
diff --git a/util/egl_loader_autogen.h b/util/egl_loader_autogen.h
index c77eb020ea..bcfb4a1004 100644
--- a/util/egl_loader_autogen.h
+++ b/util/egl_loader_autogen.h
@@ -77,6 +77,7 @@
#define eglQueryDisplayAttribANGLE l_eglQueryDisplayAttribANGLE
#define eglQueryStringiANGLE l_eglQueryStringiANGLE
#define eglCopyMetalSharedEventANGLE l_eglCopyMetalSharedEventANGLE
+#define eglSetValidationEnabledANGLE l_eglSetValidationEnabledANGLE
#define eglForceGPUSwitchANGLE l_eglForceGPUSwitchANGLE
#define eglHandleGPUSwitchANGLE l_eglHandleGPUSwitchANGLE
#define eglReacquireHighPowerGPUANGLE l_eglReacquireHighPowerGPUANGLE
@@ -196,6 +197,7 @@ ANGLE_UTIL_EXPORT extern PFNEGLRELEASEEXTERNALCONTEXTANGLEPROC l_eglReleaseExter
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBANGLEPROC l_eglQueryDisplayAttribANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYSTRINGIANGLEPROC l_eglQueryStringiANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLCOPYMETALSHAREDEVENTANGLEPROC l_eglCopyMetalSharedEventANGLE;
+ANGLE_UTIL_EXPORT extern PFNEGLSETVALIDATIONENABLEDANGLEPROC l_eglSetValidationEnabledANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLFORCEGPUSWITCHANGLEPROC l_eglForceGPUSwitchANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLHANDLEGPUSWITCHANGLEPROC l_eglHandleGPUSwitchANGLE;
ANGLE_UTIL_EXPORT extern PFNEGLREACQUIREHIGHPOWERGPUANGLEPROC l_eglReacquireHighPowerGPUANGLE;