Commit graph

50 commits

Author SHA1 Message Date
Mike Schuchardt
2feac58733 build: Update to header 1.3.272
- Update known-good
- Generate source
- Remove vk_layer_settings_ext.h
- Change all usage of VkLayerSettingEXT::count to use the new name
  valueCount from the public header.
2023-12-02 13:11:22 +01:00
Juan Ramos
640fcfeb4c cmake: Improve packaging
VulkanUtilityLibrariesConfig.cmake will now find VulkanHeaders
for the user.
2023-11-29 19:28:55 -07:00
Juan Ramos
228f7487dd Simplify integration testing by adding it to ctest
Fixes code duplication and makes running these tests far
more trivial
2023-11-20 20:41:01 -07:00
Juan Ramos
678ce607a0 ci: Add clang-format to CI
This also removes the extra .clang-format in the include directory

closes #78
2023-11-10 14:36:43 -07:00
Charles Giessen
89b8b0df6d Unset env-var in layer tests
Need to unset an env-var in order to allow the vul_tests executable to pass all tests.
This is because environment variables leak between tests when not running with CTest.
2023-10-17 13:48:39 -06:00
Juan Ramos
d7418625d9 ci: Add armeabi-v7a to CI
closes #140
2023-10-06 10:39:43 -06:00
Juan Ramos
881049b977 cmake: Only create 1 test executable
Simplifies the code and makes adding Android testing much easier.

Since you only have to deploy 1 binary.
2023-10-05 16:55:23 -06:00
unknown
cf011e717a Add GetObjectType helper to struct_helper
This utility converst Vulkan handle types to VkObjectType enums, which is used
by the debug utils set name & tag functions.
2023-10-04 11:41:20 -06:00
Juan Ramos
fd80ac3543 cmake: Fix code duplication for test code 2023-09-29 22:43:10 -06:00
Juan Ramos
4642e14f71 cmake: Export library to standardize compiler/linker options
Also fixes issue where compiler warnings weren't being applied
to Vulkan::LayerSettings

closes #106
2023-09-21 15:58:50 -06:00
Juan Ramos
08576356d6 ctest: Fix timeout 2023-09-21 10:42:16 -06:00
Juan Ramos
599d028f96 gn: Add stub file to ensure header only files are checked 2023-09-21 10:42:16 -06:00
Christophe
bc3f1e9771 layer: Add multiple VkLayerSettingsCreateInfo support 2023-09-20 19:13:47 +02:00
Juan Ramos
fefcc37fc1 Ensure consistent usage of vku in PUBLIC header files
closes #107
2023-09-20 08:34:34 -06:00
unknown
6774c9b24b util: Add vk_struct_helper.hpp
Move the vk_typemap_helper.h file in Vulkan-ValidationLayers over to this
repo with a different name to reflect the use of it

Changes from that include:
 * Rename the functions to be more obvious as to what they do
 * Placing them in the `vku` namespace
 * Adding the `InitStructHelper` class which deduces the type based on the
   variable that is being initialized
 * Compiler error if there is no corresponding sType
2023-09-19 10:10:31 -06:00
Christophe
dc1acf9e37 layer: Add env var prefix override for back compatibility 2023-09-19 16:36:44 +02:00
Christophe
e015dcd6b4 layer: Add CPP version of GetUnknownSettings 2023-09-14 17:10:12 +02:00
Juan Ramos
1c6d92cccf Use vku prefix for vk_dispatch_table.h interface 2023-09-13 16:49:54 -06:00
Christophe
b78ed1a5f0 layer: Add features to list unknown settings 2023-09-13 22:10:26 +02:00
unknown
c903525915 src: Add vk_format_utils.h to UtilityHeaders
The library originates from Vulkan-ValidationLayers, but is being moved
into this repo to make it easier for others to use it.

The library has also been modified to be header only and C compatible,
which allows more developers to be able to use it. This does require some
changes, but only affects the vkuFormatElementSize and vkuFormatTexelSize
functions which used default parameters. Two new functions,
vkuFormatElementSizeWithAspect and vkuFormatTexelSizeWithAspect have been
added to handle the non-default image aspect case (the default was COLOR_BIT).

Renaming was done using the following convention:
* public header files begin with `vk_`
* enums begin with VKU_FORMAT_
* functions begin with vku
2023-09-11 12:48:03 -06:00
Juan Ramos
6710b67cde Ensure all header files shipped have the vk_ prefix
CI will fail now if we ship a .h / .hpp file that doesn't use
the correct prefix.

I also documented the precedent for this prefix and the existing
integration testing.
2023-09-08 12:47:09 -06:00
Christophe
a3235b3e7f cmake: Add a function to setup all build targets with the same strictness 2023-09-07 19:23:55 +02:00
Christophe
824cafcf9d layer: Fix env variable trim modes 2023-09-04 16:54:26 +02:00
Christophe
33e9ad7116 layer: remove VK_LAYER_SETTING_TYPE_FRAMESET_EXT
After VK_EXT_layer_settings spec review, this new type
was judge unnecessary because it could be express by
three uint32. However, it still remains useful for the
layer settings library to correctly interpret formated
strings that represent "framesets".
2023-08-30 12:40:40 +02:00
Charles Giessen
2bd0e0d438 util: Fixup and add Dispatch Table header
Fixes the vk_layer_dispatch_table.h header file so that they can be used
in other projects. The contents of this header and
 vk_dispatch_table_helper.h have been moved into a new header
 vul_dispatch_table.h.

The structs VulDeviceDispatchTable and VulInstanceDispatchTable
struct contain function pointers for the device and instance, respectively.

The functions vul_init_device_dispatch_table and
vul_init_instance_dispatch_table fill out the aforementioned structs,
making the task of setting up the disptach table in a layer much simpler.
2023-08-23 15:07:01 -06:00
Juan Ramos
02d552db0c tests: Ensure vk_enum_string_helper.h is C compatible
Added ifdef checks for backcompat

Intended to properly address these issue(s):
- https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/3233
- https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/1211
2023-08-22 15:13:44 -06:00
Christophe
d414e86858 layer: Fix API naming to follow convention 2023-08-21 15:49:04 +02:00
Christophe
9950e5ca49 layer: clean up API 2023-08-18 14:44:26 +02:00
Christophe
33e1bd1c97 layer: Disable layer settings registry 2023-08-17 17:20:38 +02:00
Juan Ramos
6999ef9b82 Add testing for vk_enum_string_helper.h
Use magic_enum to test vk_enum_string_helper.h

closes #46
2023-08-16 09:45:31 -06:00
Christophe
ed2d4d1250 layer: Add minimum setting reflection 2023-08-15 19:04:52 +02:00
Christophe
87b77bc639 layer: Improve API consistency 2023-08-09 16:12:49 +02:00
Christophe
f8208e8fb9 layer: Query string values in one concat string 2023-08-04 22:55:35 +02:00
Christophe
07e2779843 layer: Add string to int 2023-08-04 12:32:54 +02:00
Christophe
2272ff7f32 layer: Fix mismatch of setting and query types 2023-08-03 19:06:14 +02:00
Juan Ramos
93ceaff579 Add REUSE to CI
Ensures proper copyright for the repo
2023-07-25 16:11:18 -06:00
Juan Ramos
596e7cf6ea build: Remove invalid generated files
vk_dispatch_table_helper.h and vk_layer_dispatch_table.h don't
compile currently.

Added minimal compilation testing for vk_enum_string_helper.h
2023-07-21 11:51:12 -06:00
Christophe
471366378c layer: Fix vlGetLayerSettingValue string version 2023-07-10 19:43:37 +02:00
Christophe
c0525368d7 layer: Add CPP layer settings API 2023-06-27 15:03:28 +02:00
Christophe
f714feb953 Expose FindLayerSettingsCreateInfo as a layer developer API 2023-06-26 15:43:47 +02:00
Juan Ramos
8d23122189 cmake: Cleanup CMake
Pulling in latest changes from VVL

Use BUILD_TESTS instead of VUL_TESTS. While it's good practice to
prefix variable names it makes updating this code more difficult.
Also since tests can only ever be enabled if the project is top
level, it doesn't affect add_subdirectory users.

Other misc. CMake cleanup
2023-06-20 16:12:03 -06:00
Christophe
6dc55e2ce8 layer: add env layer settings unit tests 2023-06-09 03:20:31 +02:00
Christophe
c9f8cebf72 layer: add layer settings set to handle multiple instances 2023-06-08 07:39:19 +02:00
Christophe
faa46b0633 layer: fix env var delimiters 2023-05-25 12:47:36 +02:00
Christophe
461d321fc7 layer: Avoid conflict with validation layer setting extension
- We need to use a different number and name to avoid conflict with the old extension
- Improve vlInitLayerSettings API to map GetProperties approach
- Settings may have no value
2023-05-24 22:35:24 +02:00
Christophe
61f5ab9ebf layer: streamline setting data API 2023-05-23 17:29:27 +02:00
Christophe
24f42ab5c9 layer: add layer settings library and tests
The library allows loading layer setting from vk_layer_settings.txt and
VK_EXT_layer_settings vulkan extensions
2023-05-12 15:06:40 +02:00
Juan Ramos
bedbde277e cmake: Add/test find_package/add_subdirectory support 2023-04-04 12:22:15 +02:00
Christophe
a41380f9fb Initial cmake to build the LayerUtils lib and tests 2023-03-23 14:28:39 +01:00
Christophe
06e1602d67 Add initial common files 2023-03-22 16:36:06 +01:00