Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Downstream 1.3.286 #27

Merged
merged 443 commits into from
Jul 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
443 commits
Select commit Hold shift + click to select a range
00888c5
layers: Remove void pointer with struct name
spencer-lunarg Mar 25, 2024
01156a1
layers: Make chassis namespace
spencer-lunarg Mar 25, 2024
db1d12b
build: Update to header 1.3.281
mikes-lunarg Mar 22, 2024
0ff231c
layers: VU fixes for 1.3.281
spencer-lunarg Mar 23, 2024
96a3adb
layers: Fix vuid 09542 for buffer usage 2
ziga-lunarg Mar 26, 2024
becb7f7
tests: Test get AS device address with buffer usage 2
ziga-lunarg Mar 26, 2024
a37b827
layers: Fix arrayPitch computation for ASTC_10x10
artem-lunarg Mar 25, 2024
845c320
tests: Add regression tests for ASTC_10x10 issues
artem-lunarg Mar 25, 2024
d7f6935
tests: False failure of test
HildarTheDorf Mar 25, 2024
fbdaf4c
tests: Test not checking for feature
HildarTheDorf Mar 25, 2024
706e5d2
layers: Segfaulting test
HildarTheDorf Mar 25, 2024
a9d6fc8
layers: Avoid UB in array validation
HildarTheDorf Mar 25, 2024
b9c9a52
gpuav: Split debug instructions and make a switch case
spencer-lunarg Mar 26, 2024
4d66192
layers: Use VkBufferUsageFlags2 everywhere
spencer-lunarg Mar 26, 2024
b9fc73a
layers: Use vvl custom container
spencer-lunarg Mar 26, 2024
f63e66e
layers: Remove WSI validation dependency on GetSwapchainImages
artem-lunarg Mar 25, 2024
2ac49e5
tests: Fix Host Image Copy for Lavapipe
spencer-lunarg Mar 26, 2024
d9044af
gpu: Move spir-v byte code to source files
arno-lunarg Feb 29, 2024
543e9a9
gpu: One error buffer per cmd buffer
arno-lunarg Mar 19, 2024
d12d78b
gpu: Add several errors in several cmd buffs test
arno-lunarg Mar 25, 2024
d56365c
gpu: Rename debug_record to error_record
arno-lunarg Mar 19, 2024
85c28ab
gpu: Fix shader objects handling
arno-lunarg Mar 20, 2024
73f15cd
glsl: Unify style and fix script for python3.10
spencer-lunarg Mar 27, 2024
1689210
layers: Single name for chassis state
spencer-lunarg Mar 26, 2024
1584a71
layers: Cleanup pipeline class
spencer-lunarg Mar 26, 2024
ea5117b
layers: Seperate Pipeline State tracking
spencer-lunarg Mar 26, 2024
d70c104
layers: Don't use safe struct when not needed
spencer-lunarg Mar 27, 2024
ce59ac6
gpuav: Pass Location down for DebugPrintF
spencer-lunarg Mar 27, 2024
c9f79c5
tests: Cleanup and split GPU-AV GPL tests
spencer-lunarg Mar 27, 2024
c9734ff
tests: Add Host Image Copy support for Max Profile
spencer-lunarg Mar 27, 2024
baf43a4
gpuav: Don't create an entire spirv::Module for errors
spencer-lunarg Mar 27, 2024
33a5dbf
layers: Cleanup semaphore interface
artem-lunarg Mar 26, 2024
89baac0
layers: Update SemOp constructor signature
artem-lunarg Mar 26, 2024
30acac3
layers: Replace queue/seq pairs with SubmissionReference
artem-lunarg Mar 27, 2024
1250028
layers: Rename SubmissionReference variables
artem-lunarg Mar 27, 2024
4f1bef3
layers: Update seq default value in SubmissionReference
artem-lunarg Mar 27, 2024
081b053
layers: Fix false-positive when reusing binary semaphore
artem-lunarg Mar 27, 2024
4668520
tests: Add regression test for binary semaphore reuse
artem-lunarg Mar 15, 2024
9cf24df
tests: Add missing checks in coop matrix tests
ziga-lunarg Mar 27, 2024
d0db7cf
layers: Add new vkCmdBeginTransformFeedbackEXT VU
spencer-lunarg Mar 25, 2024
522f7f4
scripts: Use promoted SPIR-V names
spencer-lunarg Mar 28, 2024
7d1c995
layers: Move things out of chassis.h
spencer-lunarg Mar 28, 2024
5e65d65
printf: Add proper vk_layer_settings support
spencer-lunarg Mar 28, 2024
3902697
gpuav: Add Multiple EntryPoint support
spencer-lunarg Mar 28, 2024
071c9ef
tests: Add test to demo multiple entries in binary timeline
artem-lunarg Mar 28, 2024
d3a9b55
build: Update SPIRV-Headers, -Tools and glslang to latest
jeremyg-lunarg Mar 28, 2024
1f658b5
layers: Expose semaphore payload instead of operation object
artem-lunarg Mar 28, 2024
362787e
layers: Move valid_enum_values.cpp out from Chassis level
spencer-lunarg Mar 28, 2024
17b74f1
layers: Move valid_flag_values.cpp out from Chassis level
spencer-lunarg Mar 28, 2024
22960b1
layers: Move valid_enum_values.h out from Chassis level
spencer-lunarg Mar 28, 2024
5d79677
scripts: Fix PlatformGuardHelper.add_guard()
jeremyg-lunarg Mar 28, 2024
3771c34
layers: Use new safe struct code from VUL
jeremyg-lunarg Mar 19, 2024
d347cca
layers: Add back RT VUs 03703 03704 03705
arno-lunarg Mar 27, 2024
899fa3a
tests: Add back 03703 03704 03705
arno-lunarg Mar 27, 2024
6220e46
gpu: Fix crash
arno-lunarg Mar 29, 2024
242b6f3
tests: Remove comment with incorrect link
spencer-lunarg Mar 28, 2024
491f7a9
chassis: Created dedicated are for chassis level logic
spencer-lunarg Mar 29, 2024
d017f41
layers: Add use cases when to ignore allocation size
artem-lunarg Apr 1, 2024
e5aac03
tests: Check that allocation size is ignored for DX import
artem-lunarg Apr 1, 2024
9ad5c6a
tests: Add Multi EntryPoint tests for DebugPrintF
spencer-lunarg Mar 28, 2024
2e25352
layers: Fix VUID 09510 message
ziga-lunarg Apr 1, 2024
0da2b22
layers: Fix null render pass crash
ziga-lunarg Apr 1, 2024
c978707
tests: Begin invalid command buffer with imageless framebuffer
ziga-lunarg Apr 1, 2024
74c8eb7
layers: Fix attachment check for vkCmdClearAttachments
ziga-lunarg Apr 1, 2024
2fab3f6
tests: Test local read clearing attachments
ziga-lunarg Apr 1, 2024
215b1f0
layers: Fix swapped FSR VUIDs
ziga-lunarg Apr 1, 2024
e1f6c94
tests: Fix swapped FSR VUIDs
ziga-lunarg Apr 1, 2024
b515a9b
layers: Ignore non-zero binary semaphore payload
artem-lunarg Apr 2, 2024
3492699
tests: Add regression test for binary semaphore payload
artem-lunarg Apr 2, 2024
78de46b
build: Update SPIRV-Tools and glslang to latest
jeremyg-lunarg Apr 4, 2024
fc9589f
layers: Add util for stage flags
spencer-lunarg Apr 8, 2024
90e11f5
layers: Fix imageless framebuffer clear crash
ziga-lunarg Mar 30, 2024
309ef1c
tests: Test clearing attachments of imageless framebuffer
ziga-lunarg Mar 30, 2024
88c2127
tests: Add timer for shader instrumentation
spencer-lunarg Apr 8, 2024
c1ec8e0
layers: Report VU for bad vkGetDeviceProcAddr
spencer-lunarg Apr 8, 2024
1920415
tests: Create dedicated secondary command buffer tests
spencer-lunarg Apr 8, 2024
f2d6274
layers: Add missing skips
ziga-lunarg Apr 8, 2024
dc9a717
layers: Check if device struct is called from instance func
spencer-lunarg Apr 9, 2024
29c6bbf
ci: Add Artifact Uploads
spencer-lunarg Apr 9, 2024
176244a
ci: Fix job that is protected from main
spencer-lunarg Apr 10, 2024
301ab9c
ci: Set retention-days to match repo settings
spencer-lunarg Apr 10, 2024
d103c3b
layers: Move Secondary CommandBuffer tracking to chassis
spencer-lunarg Apr 9, 2024
8a38e1a
layers: Refactor surface caps caching
artem-lunarg Apr 5, 2024
43000bd
tests: Add regression test for issue 7786
artem-lunarg Apr 10, 2024
e80d6f7
layers: Validate render pass contents
ziga-lunarg Apr 10, 2024
5c83efe
tests: Test invalid render pass contents
ziga-lunarg Apr 10, 2024
fd9ed74
docs: Add how to get binaries to README
spencer-lunarg Apr 10, 2024
84f8a12
gpu: Update to address validation
arno-lunarg Apr 8, 2024
1742b4e
gpu: Add new OOB tests
arno-lunarg Apr 10, 2024
e0fbc27
layers: Add explanation why to cache surface caps
artem-lunarg Apr 10, 2024
48c6e64
tests: Re-enable GPU-AV BDA tests
spencer-lunarg Apr 11, 2024
fcfd409
gpu: Fix spirv struct length computation
arno-lunarg Apr 11, 2024
89e4f8a
scripts: Add InterceptId where possible
spencer-lunarg Apr 10, 2024
f1f4d7d
layers: Clarify mock icd workaround
artem-lunarg Apr 11, 2024
97ed966
layers: Fix missing sync_queue_submit to true in Sync preset
christophe-lunarg Apr 11, 2024
08a00d5
layers: Create a core::CommandBuffer
spencer-lunarg Apr 11, 2024
534125b
layers: Move UNASSIGNED to Warning
spencer-lunarg Apr 10, 2024
ad8718d
layer: Cleanup of manual dispatch variables
spencer-lunarg Apr 10, 2024
5bbe8d2
layers: Warn if Layer is written to a single layer FB
spencer-lunarg Apr 12, 2024
31054a8
layers: Add 03704 for host accel structs builds
arno-lunarg Apr 9, 2024
71a5ba1
tests: Add 03704
arno-lunarg Apr 9, 2024
8eacefe
gpu: Fix Descriptor Indexing assuming pipeline bound first
spencer-lunarg Apr 12, 2024
a9b3f65
build: Update glslang and SPIRV-Tools
jeremyg-lunarg Apr 12, 2024
2fab60a
layers: Unify all GPU-AV settings
spencer-lunarg Apr 12, 2024
06237a7
layers: Fix clearing local read depth attachment
ziga-lunarg Apr 13, 2024
1597e78
tests: Test clearing local read depth attachment
ziga-lunarg Apr 13, 2024
d89ce7a
build: Add missing header to gn build
ShabbyX Apr 15, 2024
200ba9c
layers: Label 09631 VUID
spencer-lunarg Apr 14, 2024
fe7742d
layers: Add draw time primitiveRestartEnable check
spencer-lunarg Apr 14, 2024
c7dc4db
layers: Relax usage requirements for video formats
aqnuep Apr 15, 2024
b35c553
update_deps.py: Fix to handle Windows Arm64
alexrp Apr 14, 2024
c64f16a
layers: Fix UpdateCapabilitiesCache
artem-lunarg Apr 15, 2024
4c390e9
tests: Rename xxx_queues() -> QueuesWithXXXCapability()
artem-lunarg Apr 16, 2024
0a8baf3
tests: Add {Compute/Transfer}QueueFamily helpers
artem-lunarg Apr 16, 2024
1515248
tests: Update queue family matching routines
artem-lunarg Apr 16, 2024
6bb4f91
tests: Add helpers to get queue directly
artem-lunarg Apr 17, 2024
28db917
layers: Print Patch in interface error message
spencer-lunarg Apr 17, 2024
b11c199
build: Update to header 1.3.282
mikes-lunarg Apr 16, 2024
86b282e
layers: Check linked GPL for stageCount not zero
spencer-lunarg Apr 17, 2024
4db6f87
layers: Add VU 09635
spencer-lunarg Apr 18, 2024
7943b43
layer: Stop checking removed VU
gnl21 Apr 17, 2024
299198f
layers: Remove unneeded VUID plumbing
gnl21 Apr 18, 2024
1e4340d
tests: Fix image usage/layout confusion
gnl21 Apr 18, 2024
5094f38
tests: Add second helper queue
artem-lunarg Apr 18, 2024
0f561c1
tests: Fix MaxSampleMaskWords tests
spencer-lunarg Apr 19, 2024
d1316e5
layers: Add robustness check to drawn time vertex buffer
spencer-lunarg Mar 29, 2024
0409ac6
layers: Improve Shader Interface errors
spencer-lunarg Apr 19, 2024
5e7f4ee
build: Update to header 1.3.283
mikes-lunarg Apr 19, 2024
b7044aa
layers: Add Sync1 host stage VUs
artem-lunarg Apr 19, 2024
d84c3a5
tests: Test Sync1 host stage VUs
artem-lunarg Apr 19, 2024
12f7fa5
test: Set VK_LAYER_PATH automatically if missing
charles-lunarg Apr 19, 2024
2e26d97
scripts: Update VUL
spencer-lunarg Apr 20, 2024
8e6de84
layers: Add Draw VK_EXT_legacy_dithering VU
spencer-lunarg Apr 20, 2024
930e135
layers: Label RenderPass 1 VUID for nestedCommandBuffer
spencer-lunarg Apr 19, 2024
def345b
layers: Add Protected buffer usage flag combo
spencer-lunarg Apr 19, 2024
392b127
layers: Nit cleanup in GPU-AV
spencer-lunarg Apr 22, 2024
5a91c8a
build: Update SPIRV-Tools and glslang to latest
jeremyg-lunarg Apr 19, 2024
ee2291f
layers: Add dynamic state VK_EXT_conservative_rasterization
spencer-lunarg Apr 20, 2024
8e5a283
layers: Fix CreateInstance layer setting msg
christophe-lunarg Apr 22, 2024
9ca6171
printf: Add way to disconnect from chassis on abort
spencer-lunarg Apr 22, 2024
6db5d67
tests: Fix MaxSampleMaskWords
spencer-lunarg Apr 23, 2024
1d64b3c
layers: Ignore ColorBlendState attachmentCount
spencer-lunarg Apr 23, 2024
055c2be
tests: Avoid race in Sync2SignalSemaphoreValue
tomek-brcm Apr 22, 2024
a9ec5ff
tests: Don't use max queueCount
spencer-lunarg Apr 23, 2024
46ab610
scripts: VkPipelineLayoutCreateInfo common parent
spencer-lunarg Apr 24, 2024
3425dfa
layers: Rework DispatchGetDescriptorEXT
spencer-lunarg Apr 24, 2024
5f1e383
layers: Notify queues in deterministic order
artem-lunarg Apr 24, 2024
12f7065
layers: Cleanup queue's Notify/Wait
artem-lunarg Apr 24, 2024
a2e7966
layers: Fix vkDeviceWaitIdle deadlock
artem-lunarg Apr 24, 2024
c70a230
tests: Add regression test for vkDeviceWaitIdle deadlock
artem-lunarg Apr 19, 2024
17c8bcb
layers: Fix drawtime vertex VU 04008
spencer-lunarg Apr 24, 2024
c1fc23c
layers: Don't count ImageQuery as image accesses
spencer-lunarg Apr 25, 2024
33216c2
layers: Fix secondary buffer query deadlock
artem-lunarg Apr 22, 2024
9911e85
tests: Add regression test for issue 7874
artem-lunarg Apr 22, 2024
d405f99
build: Update SPIRV-Headers, -Tools and glslang to latest
jeremyg-lunarg Apr 26, 2024
aa835d1
tests: Break vkt::CommandBuffer and vkt::Queue dependency
artem-lunarg Apr 26, 2024
62c65a6
tests: Remove QueueCommandBuffer method
artem-lunarg Apr 26, 2024
bacc84e
layers: Fix typo in VUID 00344
mehmetoguzderin Apr 27, 2024
72856ef
scripts: Update VUL
spencer-lunarg Apr 29, 2024
ea1a0c3
gpu: Update gpu_validation.md
arno-lunarg Apr 16, 2024
2a38244
cmake: Remove MSVC specific sln option
arno-lunarg Apr 22, 2024
9973627
gpu: Require feature to validate copies
arno-lunarg Apr 15, 2024
3379947
gpu: Force timeline semaphore feature
arno-lunarg Apr 15, 2024
f7dfa5c
tests: Use SetDesiredError
arno-lunarg Apr 16, 2024
181c616
gpu: Add simultaneous use flag to barrier cmd buff
arno-lunarg Apr 16, 2024
8463798
gpu: Only create desc layout once
arno-lunarg Apr 16, 2024
158121c
gpu: Fix descriptor management
arno-lunarg Apr 19, 2024
9ad7f3e
gpu: Fix instrumentation desc set binding
arno-lunarg Apr 19, 2024
397d8fb
layers: Improve Descriptor Buffer error message
spencer-lunarg Apr 28, 2024
4772d7c
layers: Fix reading pipeline create flags
ziga-lunarg Apr 29, 2024
7fa1245
tests: Test descriptor buffer with pipeline create flags 2
ziga-lunarg Apr 29, 2024
09025fa
layers: Remove attachments_view_states
spencer-lunarg Apr 29, 2024
5207b8c
layers: Remove shared pointer from active subpasses
spencer-lunarg Apr 29, 2024
c7acc21
icd: Create internal VVL Test Driver
spencer-lunarg Apr 29, 2024
fa40460
tests: Use span for multiple command buffers
artem-lunarg Apr 26, 2024
51ea6d6
tests: Remove check for submit result
artem-lunarg Apr 29, 2024
1d1c896
tests: Rename submit helpers
artem-lunarg Apr 29, 2024
c10f569
tests: Add gpu test
arno-lunarg Apr 30, 2024
75b41b0
gpu: Fix concurrent accesses to BDA buffer
arno-lunarg Apr 30, 2024
11c3d69
layers: Fix pMultisampleState ignore logic
spencer-lunarg Apr 30, 2024
62bd9b2
tests: Fix compilation error
artem-lunarg Apr 30, 2024
12704b9
scripts: Don't index sorted enums
spencer-lunarg Apr 30, 2024
01db35d
layers: Add semaphore tracking to LatencySleepNV
chansen-nv Apr 29, 2024
2ae9dda
gpu: Fix concurrent access of cmb buffer resources
arno-lunarg Apr 23, 2024
1de19b5
build: Update SPIRV-Tools
spencer-lunarg May 1, 2024
c4422ea
tests: Add Descriptor Indexing GPU-AV tests
spencer-lunarg May 1, 2024
08de697
tests: Add submit with semaphore helpers
artem-lunarg Apr 30, 2024
c13750b
build: Fix incremental builds using wrong VK_LAYER_PATH
charles-lunarg May 2, 2024
460c0cf
gpuav: Fix crash in dota2
spencer-lunarg May 2, 2024
ce7b992
layers: Move active attachments to a struct
spencer-lunarg May 1, 2024
527ce20
layers: Check attachment depending on type
spencer-lunarg May 2, 2024
3952ffc
tests: Add GPU-AV Stress perf test
spencer-lunarg May 2, 2024
e2d9218
gpu: Rework settings
arno-lunarg May 1, 2024
01ca735
build: Update glslang to latest
spencer-lunarg May 3, 2024
22457c7
tests: Remove operator bool
artem-lunarg May 2, 2024
9d42b67
layers: Option to print application name
spencer-lunarg May 3, 2024
d7cd733
layers: Fix when updating binding never created in layout
spencer-lunarg May 3, 2024
56731db
settings: Set warning/perf for Best Practice preset
spencer-lunarg May 3, 2024
f69be65
build: Update shader toochain for SDK
mikes-lunarg May 3, 2024
718d37f
layers: Fix typo for vuid 08734
ziga-lunarg May 3, 2024
00e2ef0
layers: Fix crash from null pCreateInfo
spencer-lunarg May 3, 2024
44d3258
gpu: Fix settings handling
arno-lunarg May 6, 2024
a0a8bab
gpuav: Track which set is used during descriptor indexing
spencer-lunarg May 3, 2024
3c23067
layers: Update buffer address related VU error msg
arno-lunarg May 6, 2024
31ffb45
layers: Early return ValidateFsOutputsAgainstRenderPass
spencer-lunarg Apr 30, 2024
444375d
layers: Prevent false positive when using fragment output array
spencer-lunarg May 6, 2024
e28f3fd
tests: Remove vkt::Buffer default usage
artem-lunarg May 6, 2024
64c3935
tests: Add second command pool/buffer
artem-lunarg May 6, 2024
6a9bce0
gpuav: Use internal stream out constants
spencer-lunarg May 7, 2024
d9cdffb
tests: Remove deprecated m_commandPool
spencer-lunarg May 7, 2024
00c0bd4
layers: Fix skip management in RT validation
arno-lunarg May 7, 2024
01368e8
gpu: Enclose in namespace gpuav
arno-lunarg May 7, 2024
02a12a0
scripts: Fix generate_spirv.py needing clang-format
spencer-lunarg May 7, 2024
52a7f67
layers: Improve invalid VkFlag error message
spencer-lunarg May 7, 2024
a5f65da
tests: Fix option descriptions
spencer-lunarg May 7, 2024
5079c31
layers: Cleanup old subpass UNASSIGNED VUs
spencer-lunarg May 7, 2024
ed4446a
build: Update to header 1.3.284
mikes-lunarg May 8, 2024
e0eaf4b
layer: Add header for std::tolower and std::toupper
dj2 May 8, 2024
02555fc
layers: Check for VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT
spencer-lunarg May 8, 2024
6de9c0a
corechecks: Avoid crashing in ValidateBufferUpdate
jeremyg-lunarg May 8, 2024
40a2a8f
layers: Fix Swapchain DebugMarker false positive
spencer-lunarg May 9, 2024
503fd9d
layers: Add VK_EXT_legacy_vertex_attributes
spencer-lunarg May 9, 2024
e32484e
layers: Remove old Subpass dependency check for SyncVal
spencer-lunarg May 9, 2024
1ca695d
sync: Cleanup GetMapped helpers
artem-lunarg May 8, 2024
957dc71
tests: Add extra object lifetime tests
spencer-lunarg May 9, 2024
23455c9
layers: Use VkPipelineCreateFlags2KHR for stateless pipeline
spencer-lunarg May 9, 2024
d85c057
layers: Fix swapchain image debug marker logic
spencer-lunarg May 9, 2024
65af80a
sync: Simplify SignaledSemaphores::Unsignal
artem-lunarg May 9, 2024
30cf3bc
layer: Add InputAttachmentIndex SPIR-V check
spencer-lunarg May 10, 2024
c7c8c9f
layers: Refactor RequiredQueueFlags check
spencer-lunarg May 10, 2024
e74bfc2
tests: Add missing subpass pipeline barrier tests
spencer-lunarg May 10, 2024
cc24ed9
sync: Revert Simplify SignaledSemaphores::Unsignal
artem-lunarg May 10, 2024
75e7e5c
tests: Add regression test for previous commit
artem-lunarg May 10, 2024
7242ce8
sync: Simplify SignaledSemaphores::Unsignal v2
artem-lunarg May 10, 2024
82ad456
build: Update SPIRV-Headers, -Tools and glslang to latest
jeremyg-lunarg May 10, 2024
a88724b
tests: Format glsl strings
spencer-lunarg May 10, 2024
6f75720
layer: Use empty() over size() == 0
spencer-lunarg May 13, 2024
4a3ba77
layers: Fix error message for VkSubpassDependency
spencer-lunarg May 13, 2024
a2020fe
layers: Fix error message for VkSubpassDependency
spencer-lunarg May 13, 2024
52aad4f
tests: Fix SelectInstrumentedShaders tests
spencer-lunarg May 13, 2024
f1458bf
tests: Move ShaderObject helpers to Framework
spencer-lunarg May 13, 2024
8480f26
tests: Add shader_object_helper.cpp
spencer-lunarg May 13, 2024
6802e86
gpuav: Rename interface to GpuShaderInstrumentor
spencer-lunarg May 10, 2024
cce240e
layers: Don't require VK_WHOLE_SIZE WITH VK_MAP_MEMORY_PLACED
gfxstrand Apr 23, 2024
944660e
gpuav: Support all stages for gpuav
spencer-lunarg May 10, 2024
f20bed5
gpu: Remove feature check
arno-lunarg May 6, 2024
5b41904
tests: Use AddRequiredFeature
arno-lunarg May 6, 2024
8d6ac1b
build: Update to header 1.3.285
mikes-lunarg May 13, 2024
b523ab6
build: Downstream 1.3.286 and prepare for release 1.0.15
aqnuep Jul 4, 2024
301c522
build: Fix Windows Test ICD build issues
aqnuep Jul 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/vvl.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright (c) 2021-2023 Valve Corporation
# Copyright (c) 2021-2023 LunarG, Inc.
# Copyright (c) 2021-2024 Valve Corporation
# Copyright (c) 2021-2024 LunarG, Inc.
# Copyright (c) 2023-2024 RasterGrid Kft.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ out64/*
scripts/.vs
.*.sw[op]
*~
*.10x

# BUILD.gn artifacts
.cipd/
Expand Down
109 changes: 61 additions & 48 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ vvl_sources = [
"layers/best_practices/bp_synchronization.cpp",
"layers/best_practices/bp_video.cpp",
"layers/best_practices/bp_wsi.cpp",
"layers/chassis/chassis_handle_data.h",
"layers/chassis/chassis_modification_state.h",
"layers/chassis/layer_chassis_dispatch_manual.cpp",
"layers/containers/custom_containers.h",
"layers/containers/qfo_transfer.h",
"layers/containers/range_vector.h",
"layers/containers/subresource_adapter.cpp",
Expand Down Expand Up @@ -143,8 +147,12 @@ vvl_sources = [
"layers/core_checks/cc_shader_interface.cpp",
"layers/core_checks/cc_shader_object.cpp",
"layers/core_checks/cc_spirv.cpp",
"layers/core_checks/cc_state_tracker.h",
"layers/core_checks/cc_state_tracker.cpp",
"layers/core_checks/cc_synchronization.cpp",
"layers/core_checks/cc_video.cpp",
"layers/core_checks/cc_vuid_maps.cpp",
"layers/core_checks/cc_vuid_maps.h",
"layers/core_checks/cc_wsi.cpp",
"layers/core_checks/cc_ycbcr.cpp",
"layers/core_checks/core_validation.h",
Expand All @@ -155,15 +163,20 @@ vvl_sources = [
"layers/external/vma/vk_mem_alloc.h",
"layers/external/vma/vma.cpp",
"layers/external/vma/vma.h",
"layers/gpu_shaders/gpu_error_codes.h",
"layers/gpu_shaders/gpu_error_header.h",
"layers/gpu_shaders/gpu_shaders_constants.h",
"layers/gpu_validation/debug_printf.cpp",
"layers/gpu_validation/debug_printf.h",
"layers/gpu_validation/gpu_constants.h",
"layers/gpu_validation/gpu_descriptor_set.cpp",
"layers/gpu_validation/gpu_descriptor_set.h",
"layers/gpu_validation/gpu_error_message.cpp",
"layers/gpu_validation/gpu_error_message.h",
"layers/gpu_validation/gpu_image_layout.cpp",
"layers/gpu_validation/gpu_settings.h",
"layers/gpu_validation/gpu_shader_instrumentor.cpp",
"layers/gpu_validation/gpu_shader_instrumentor.h",
"layers/gpu_validation/gpu_state_tracker.cpp",
"layers/gpu_validation/gpu_state_tracker.h",
"layers/gpu_validation/gpu_subclasses.cpp",
Expand Down Expand Up @@ -191,7 +204,8 @@ vvl_sources = [
"layers/gpu_validation/spirv/bindless_descriptor_pass.cpp",
"layers/gpu_validation/spirv/buffer_device_address_pass.h",
"layers/gpu_validation/spirv/buffer_device_address_pass.cpp",
"layers/layer_chassis_dispatch_manual.cpp",
"layers/gpu_validation/spirv/ray_query_pass.h",
"layers/gpu_validation/spirv/ray_query_pass.cpp",
"layers/layer_options.cpp",
"layers/layer_options.h",
"layers/object_tracker/object_lifetime_validation.h",
Expand Down Expand Up @@ -236,7 +250,7 @@ vvl_sources = [
"layers/state_tracker/state_object.h",
"layers/state_tracker/state_tracker.cpp",
"layers/state_tracker/state_tracker.h",
"layers/state_tracker/vertex_index_buffer_state.cpp",
"layers/state_tracker/submission_reference.h",
"layers/state_tracker/vertex_index_buffer_state.h",
"layers/state_tracker/video_session_state.cpp",
"layers/state_tracker/video_session_state.h",
Expand Down Expand Up @@ -281,12 +295,10 @@ vvl_sources = [
"layers/thread_tracker/thread_safety_validation.cpp",
"layers/thread_tracker/thread_safety_validation.h",
"layers/utils/android_ndk_types.h",
"layers/utils/convert_utils.cpp",
"layers/utils/convert_utils.h",
"layers/utils/ray_tracing_utils.cpp",
"layers/utils/ray_tracing_utils.h",
"layers/utils/shader_utils.cpp",
"layers/utils/shader_utils.h",
"layers/utils/image_layout_utils.cpp",
"layers/utils/image_layout_utils.h",
"layers/vulkan/generated/best_practices.cpp",
"layers/vulkan/generated/best_practices.h",
"layers/vulkan/generated/chassis.cpp",
Expand All @@ -296,14 +308,21 @@ vvl_sources = [
"layers/vulkan/generated/dynamic_state_helper.cpp",
"layers/vulkan/generated/dynamic_state_helper.h",
"layers/vulkan/generated/enum_flag_bits.h",
"layers/vulkan/generated/gpu_as_inspection_comp.h",
"layers/vulkan/generated/gpu_inst_shader_hash.h",
"layers/vulkan/generated/gpu_pre_dispatch_comp.h",
"layers/vulkan/generated/gpu_pre_dispatch_comp.cpp",
"layers/vulkan/generated/gpu_pre_draw_vert.h",
"layers/vulkan/generated/gpu_pre_draw_vert.cpp",
"layers/vulkan/generated/gpu_pre_trace_rays_rgen.h",
"layers/vulkan/generated/gpu_pre_trace_rays_rgen.cpp",
"layers/vulkan/generated/gpu_pre_copy_buffer_to_image_comp.h",
"layers/vulkan/generated/gpu_pre_copy_buffer_to_image_comp.cpp",
"layers/vulkan/generated/inst_bindless_descriptor_comp.h",
"layers/vulkan/generated/inst_bindless_descriptor_comp.cpp",
"layers/vulkan/generated/inst_buffer_device_address_comp.h",
"layers/vulkan/generated/inst_buffer_device_address_comp.cpp",
"layers/vulkan/generated/inst_ray_query_comp.h",
"layers/vulkan/generated/inst_ray_query_comp.cpp",
"layers/vulkan/generated/layer_chassis_dispatch.cpp",
"layers/vulkan/generated/layer_chassis_dispatch.h",
"layers/vulkan/generated/object_tracker.cpp",
Expand All @@ -327,15 +346,45 @@ vvl_sources = [
"layers/vulkan/generated/valid_enum_values.h",
"layers/vulkan/generated/valid_flag_values.cpp",
"layers/vulkan/generated/vk_api_version.h",
"layers/error_message/error_location.cpp",
"layers/error_message/error_location.h",
"layers/error_message/error_strings.h",
"layers/error_message/logging.h",
"layers/error_message/logging.cpp",
"layers/error_message/record_object.h",
"layers/external/xxhash.h",
"layers/utils/android_ndk_types.h",
"layers/utils/cast_utils.h",
"layers/utils/convert_utils.cpp",
"layers/utils/convert_utils.h",
"layers/utils/hash_util.cpp",
"layers/utils/hash_util.h",
"layers/utils/hash_vk_types.h",
"layers/utils/image_layout_utils.cpp",
"layers/utils/image_layout_utils.h",
"layers/utils/vk_layer_extension_utils.cpp",
"layers/utils/vk_layer_extension_utils.h",
"layers/utils/vk_layer_utils.cpp",
"layers/utils/vk_layer_utils.h",
"layers/vk_layer_config.cpp",
"layers/vk_layer_config.h",
"layers/vulkan/generated/error_location_helper.cpp",
"layers/vulkan/generated/error_location_helper.h",
"layers/vulkan/generated/feature_requirements_helper.cpp",
"layers/vulkan/generated/feature_requirements_helper.h",
"layers/vulkan/generated/pnext_chain_extraction.cpp",
"layers/vulkan/generated/pnext_chain_extraction.h",
"layers/vulkan/generated/vk_function_pointers.cpp",
"layers/vulkan/generated/vk_function_pointers.h",
"layers/vulkan/generated/vk_validation_error_messages.h",
"layers/vulkan/generated/vk_layer_dispatch_table.h",
"layers/vulkan/generated/vk_dispatch_table_helper.cpp",
"layers/vulkan/generated/vk_dispatch_table_helper.h",
"layers/vulkan/generated/vk_object_types.h",
"layers/vulkan/generated/vk_object_types.cpp",
"layers/vulkan/generated/vk_api_version.h",
"layers/vulkan/generated/vk_extension_helper.h",
"layers/vulkan/generated/vk_extension_helper.cpp",
"layers/vulkan/generated/vk_safe_struct_core.cpp",
"layers/vulkan/generated/vk_safe_struct_ext.cpp",
"layers/vulkan/generated/vk_safe_struct_khr.cpp",
"layers/vulkan/generated/vk_safe_struct_utils.cpp",
"layers/vulkan/generated/vk_safe_struct_vendor.cpp",
]

layers = [ [
Expand Down Expand Up @@ -400,42 +449,6 @@ source_set("vulkan_layer_utils") {
sources = [
"$vulkan_headers_dir/include/vulkan/vk_layer.h",
"$vulkan_headers_dir/include/vulkan/vulkan.h",
"layers/containers/custom_containers.h",
"layers/containers/sparse_containers.h",
"layers/error_message/error_location.cpp",
"layers/error_message/error_location.h",
"layers/error_message/error_strings.h",
"layers/error_message/logging.cpp",
"layers/error_message/logging.h",
"layers/error_message/record_object.h",
"layers/external/xxhash.h",
"layers/utils/android_ndk_types.h",
"layers/utils/cast_utils.h",
"layers/utils/hash_util.cpp",
"layers/utils/hash_util.h",
"layers/utils/hash_vk_types.h",
"layers/utils/ray_tracing_utils.cpp",
"layers/utils/ray_tracing_utils.h",
"layers/utils/vk_layer_extension_utils.cpp",
"layers/utils/vk_layer_extension_utils.h",
"layers/utils/vk_layer_utils.cpp",
"layers/utils/vk_layer_utils.h",
"layers/vk_layer_config.cpp",
"layers/vk_layer_config.h",
"layers/vulkan/generated/error_location_helper.cpp",
"layers/vulkan/generated/error_location_helper.h",
"layers/vulkan/generated/layer_chassis_dispatch.h",
"layers/vulkan/generated/feature_requirements_helper.cpp",
"layers/vulkan/generated/feature_requirements_helper.h",
"layers/vulkan/generated/pnext_chain_extraction.cpp",
"layers/vulkan/generated/pnext_chain_extraction.h",
"layers/vulkan/generated/vk_api_version.h",
"layers/vulkan/generated/vk_extension_helper.h",
"layers/vulkan/generated/vk_layer_dispatch_table.h",
"layers/vulkan/generated/vk_object_types.h",
"layers/vulkan/generated/vk_object_types.cpp",
"layers/vulkan/generated/vk_safe_struct.h",
"layers/vulkan/generated/vk_validation_error_messages.h",
]
public_configs = [
":vulkan_internal_config",
Expand Down
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ~~~
# Copyright (c) 2014-2023 Valve Corporation
# Copyright (c) 2014-2023 LunarG, Inc.
# Copyright (c) 2014-2024 Valve Corporation
# Copyright (c) 2014-2024 LunarG, Inc.
# Copyright (c) 2023-2023 RasterGrid Kft.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down Expand Up @@ -65,7 +65,9 @@ else()
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)

find_package(PkgConfig REQUIRED QUIET)
if (BUILD_WSI_XCB_SUPPORT OR BUILD_WSI_XLIB_SUPPORT OR BUILD_WSI_WAYLAND_SUPPORT)
find_package(PkgConfig REQUIRED QUIET)
endif()

if(BUILD_WSI_XCB_SUPPORT)
pkg_check_modules(XCB REQUIRED QUIET IMPORTED_TARGET xcb)
Expand Down Expand Up @@ -99,8 +101,6 @@ find_package(SPIRV-Headers CONFIG QUIET)

find_package(SPIRV-Tools-opt CONFIG QUIET)

find_package(SPIRV-Tools-link CONFIG QUIET)

# NOTE: Our custom code generation target isn't desirable for system package managers or add_subdirectory users.
# So this target needs to be off by default to avoid obtuse build errors or patches.
option(VVL_CODEGEN "Enable vulkan validation layer code generation")
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ a Vulkan driver. Applications have full control and responsibility for correct o
how Vulkan is used can result in a crash. This project provides Vulkan validation layers that can be enabled
to assist development by enabling developers to verify their applications correct use of the Vulkan API.

## Getting Binaries

For those who don't want to build from source, there are few ways to get working binaries to use
- The [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) will have the most well tested versions of the layer
- For Android, each SDK tag will have binaries to download (example: [vulkan-sdk-1.3.280.0 tag](https://github.com/KhronosGroup/Vulkan-ValidationLayers/releases/tag/vulkan-sdk-1.3.280.0))
- Every change applied to the main branch runs through GitHub action and will [produce artifacts](https://github.com/KhronosGroup/Vulkan-ValidationLayers/actions?query=branch%3Amain) of the latest commit.

## Community Assistance

Before submitting an issue to the validation layers or reaching out to the developers it may be prudent to reach out to the community first.
Expand Down
40 changes: 21 additions & 19 deletions docs/creating_tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ This is an "up-to-speed" document for writing tests to validate the Validation L

## Rule #1

The first rule is to make sure you are actually running the tests on the built version of the Validation Layers you want. If you have the Vulkan SDK installed, then you will have a pre-built version of the Validation Layers set in your path and those are probably not the version you want to test.
The first rule is to make sure you are actually running the tests on the built version of the Validation Layers you want. Set the environment variable `VK_LOADER_DEBUG` to `layer` and check that the output of the tests report that the path of the validation layer matches what is expected.

The tests automatically set `VK_LAYER_PATH` to the validation layer in the build tree. However if you wish to use a different validation layer than the one that was built, or if you wish to use multiple layers in the tests at the same time, you must set `VK_LAYER_PATH` or `VK_ADD_LAYER_PATH` to include each path to the desired layers, including the validation layer.

Make sure you have the correct `VK_LAYER_PATH` set on Windows or Linux (on Android the layers are baked into the APK so there is nothing to worry about)

Expand Down Expand Up @@ -85,13 +87,13 @@ RETURN_IF_SKIP(Init());
const bool copy_commands2 = IsExtensionsEnabled(VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME);

// Validate core copy command
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, vuid);
m_errorMonitor->SetDesiredError(vuid);
vk::CmdCopyBuffer( /* */ );
m_errorMonitor->VerifyFound();

// optional test using VK_KHR_copy_commands2
if (copy_commands2) {
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, vuid);
m_errorMonitor->SetDesiredError(vuid);
vk::CmdCopyBuffer2KHR( /* */ );
m_errorMonitor->VerifyFound();
}
Expand Down Expand Up @@ -149,35 +151,35 @@ The few common patterns that will cover 99% of cases are:
- **By default**, all Vulkan API calls are expected to succeed. In the past, one would have to "wrap" API calls in `ExpectSuccess`/`VerifyNotFound` to ensure an API call did not trigger any errors. This is no longer the case. e.g.,
```cpp
// m_errorMonitor->ExpectSuccess(); <- implicit
vk::CreateSampler(m_device->device(), &sci, nullptr, &samplers[0]);
vk::CreateSampler(device(), &sci, nullptr, &samplers[0]);
// m_errorMonitor->VerifyNoutFound(); <- implicit
```
The `ExpectSuccess` and `VerifyNotFound` calls are now implicit.
- For checking a call that invokes a VUID error
```cpp
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkSamplerCreateInfo-addressModeU-01646");
m_errorMonitor->SetDesiredError("VUID-VkSamplerCreateInfo-addressModeU-01646");
// The following API call is expected to trigger 01646 and _only_ 01646
vk::CreateSampler(m_device->device(), &sci, NULL, &BadSampler);
vk::CreateSampler(device(), &sci, NULL, &BadSampler);
m_errorMonitor->VerifyFound();

// All calls after m_errorMonitor->VerifyFound() are expected to not trigger any errors. e.g., the following API call should succeed with no validation errors being triggered.
vk::CreateImage(m_device->device(), &ci, nullptr, &mp_image);
vk::CreateImage(device(), &ci, nullptr, &mp_image);

```
- When it is possible another VUID will be triggered that you are not testing. This usually happens due to making something invalid can cause a chain effect causing other things to be invalid as well.
- Note: If the `SetUnexpectedError` is never called it will not fail the test
```cpp
m_errorMonitor->SetUnexpectedError("VUID-VkImageMemoryRequirementsInfo2-image-01590");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkImageMemoryRequirementsInfo2-image-02280");
m_errorMonitor->SetDesiredError("VUID-VkImageMemoryRequirementsInfo2-image-02280");
vkGetImageMemoryRequirements2Function(device(), &mem_req_info2, &mem_req2);
m_errorMonitor->VerifyFound();
```

- When you expect multpile VUID to be triggered. This is also be a case if you expect the same VUID to be called twice.
- Note: If both VUID are not found the test will fail
```cpp
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907");
m_errorMonitor->SetDesiredError("VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905");
m_errorMonitor->SetDesiredError("VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907");
vk::CmdBeginRenderPass(m_commandBuffer->handle(), &m_renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
m_errorMonitor->VerifyFound();
```
Expand All @@ -186,7 +188,7 @@ m_errorMonitor->VerifyFound();
- Note: The start of the test might already have a boolean that checks for extension support
```cpp
const char* vuid = IsExtensionsEnabled(VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME) ? "VUID-vkCmdCopyImage-dstImage-01733" : "VUID-vkCmdCopyImage-dstImage-01733";
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, vuid);
m_errorMonitor->SetDesiredError(vuid);
m_commandBuffer->CopyImage(image_2.image(), VK_IMAGE_LAYOUT_GENERAL, image_1.image(), VK_IMAGE_LAYOUT_GENERAL, 1, &copy_region);
m_errorMonitor->VerifyFound();
```
Expand All @@ -195,12 +197,12 @@ m_errorMonitor->VerifyFound();
- Keep it simple. Try to make each test as small and concise as possible.
- Avoid testing VUIDs in "batches" such as:
```cpp
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferBeginInfo-flags-06003");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008");
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferBeginInfo-flags-06003");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008");
m_errorMonitor->SetDesiredError("VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009");
...
vk::BeginCommandBuffer(secondary_cmd_buffer, &cmd_buffer_begin_info);
m_errorMonitor->VerifyFound();
Expand All @@ -216,15 +218,15 @@ used to make it obvious).
VkImageSubresource subresource{};
subresource.aspectMask = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT;
VkSubresourceLayout layout{};
m_errorMonitor->SetDesiredFailureMsg(kErrorBit, "VUID-vkGetImageSubresourceLayout-tiling-09433");
m_errorMonitor->SetDesiredError("VUID-vkGetImageSubresourceLayout-tiling-09433");
vk::GetImageSubresourceLayout(m_device->handle(), image.handle(), &subresource, &layout);
m_errorMonitor->VerifyFound();
```
Here it is obvious that the `aspectMask` parameter is the cause of 02271.

### Viewing VU Messages

When `SetDesiredFailureMsg` is used, nothing is displayed if the test is successful. To see the messages regardless use `--print-vu`
When `SetDesiredError` is used, nothing is displayed if the test is successful. To see the messages regardless use `--print-vu`

```bash
./tests/vk_layer_validation_tests --print-vu --gtest_filter=Tests
Expand Down
Loading