platform/upstream/Vulkan-Tools.git
5 months agoUpgrade to upstream v1.3.268 accepted/tizen_unified accepted/tizen_unified_dev accepted/tizen_unified_toolchain accepted/tizen_unified_x tizen accepted/tizen/unified/20240219.160422 accepted/tizen/unified/dev/20240620.011157 accepted/tizen/unified/toolchain/20240311.065920 accepted/tizen/unified/x/20240220.150038
Xuelian Bai [Wed, 8 Feb 2023 02:05:14 +0000 (10:05 +0800)]
Upgrade to upstream v1.3.268

Change-Id: I407e07885d103fa249a2295e31c031a420e209cb
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
6 months agoUpgrade version to 1.3.226
Xuelian Bai [Thu, 15 Sep 2022 07:07:54 +0000 (15:07 +0800)]
Upgrade version to 1.3.226

Change-Id: I5124524098a471bed06651880c8ee84582cb476d
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
6 months agoRemove the use of xdg_wm_base protocol
SooChan Lim [Thu, 23 Jun 2022 01:58:57 +0000 (10:58 +0900)]
Remove the use of xdg_wm_base protocol

add TIZEN_SUPPPORT_XDG_WM_BASE definition not to build xdg_wm_base
codes.

Change-Id: I2f0953ec877b1c87bba4dce0e562e043820b59a7

Add TIZEN_SUPPPORT_XDG_DECORATION definition

not to build xdg_decoration codes.

Change-Id: I32cd5485d7de480ed61c61d9cc4bb1f50eec52ee

6 months agoFix building errors from TV
Xuelian Bai [Thu, 24 Mar 2022 06:06:14 +0000 (14:06 +0800)]
Fix building errors from TV

1. Fix -Werror=shadow in cube.cpp
2. Ignore other errors in vulkaninfo.h

Change-Id: I479267a9582e7786e22f5b04b21e523e7e2e4428
Signed-off-by: Xuelian Bai <xuelian.baiwq@samsung.com>
Upgrade to v1.3.208

Change-Id: I59a7e25b26f42a2fcf43dedd84d982c53e13ede3

Fix vkcube issue

xdg-wm-base isn't supported by e20, so replace it by wl_shell

Change-Id: Ic0c84d9ce301ed6c44995ad181318b9a79fdf919
Signed-off-by: Xuelian Bai <xuelian.baiwq@samsung.com>
Fix build error

Fix following error:
/home/abuild/rpmbuild/BUILD/vulkan-tools-1.3.208/cube/
xdg-decoration-client-header.h:79:1: error: unterminated comment

Change-Id: I10fb5f7ed92d37beccaab33a349bae50232b677e
Signed-off-by: Xuelian Bai <xuelian.baiwq@samsung.com>
6 months agoadd the spec file
SooChan Lim [Fri, 30 Nov 2018 05:27:50 +0000 (14:27 +0900)]
add the spec file

scripts: change time to time_process

It fixes build break due to python upgrade.

Change-Id: I0f354983142e33eb908a23f7f6eb232d63cab040

bump to 1.2.179

Change-Id: I6c381678675343b7980d7bd27ae406220afea829
Signed-off-by: SooChan Lim <sc1.lim@samsung.com>
9 months agobuild: Update to header 1.3.268 upstream upstream/1.3.268
Mike Schuchardt [Fri, 13 Oct 2023 17:37:12 +0000 (10:37 -0700)]
build: Update to header 1.3.268

- Update known-good
- Generate source

9 months agocubepp: Verify correct pipeline result
Charles Giessen [Thu, 12 Oct 2023 15:51:11 +0000 (09:51 -0600)]
cubepp: Verify correct pipeline result

9 months agodocs: Cleanup BUILD.md and various other documents
Juan Ramos [Wed, 11 Oct 2023 22:06:45 +0000 (16:06 -0600)]
docs: Cleanup BUILD.md and various other documents

- Fixup build documentation up to standard set by VVL
- Add documentation for running vkcube/vulkaninfo on Android
- Make BUILD_WERROR off by default
- Remove out of date documentation
- Remove pointless documentation

closes #791

9 months agocmake: Remove pointless code
Juan Ramos [Wed, 11 Oct 2023 19:57:13 +0000 (13:57 -0600)]
cmake: Remove pointless code

This doesn't do anything anymore

9 months agogn: Cleanup chromium build
Juan Ramos [Wed, 11 Oct 2023 17:59:10 +0000 (11:59 -0600)]
gn: Cleanup chromium build

9 months agoicd: Add VkAndroidHardwareBufferFormatResolvePropertiesANDROID
spencer-lunarg [Wed, 11 Oct 2023 07:16:25 +0000 (16:16 +0900)]
icd: Add VkAndroidHardwareBufferFormatResolvePropertiesANDROID

9 months agocmake: Remove ndk-build
Juan Ramos [Tue, 10 Oct 2023 23:03:54 +0000 (17:03 -0600)]
cmake: Remove ndk-build

Successfully ran VkCube.apk on my Pixel3

closes #850

9 months agocmake: vkcube/vulkaninfo successfully compile for Android
Juan Ramos [Tue, 10 Oct 2023 21:30:07 +0000 (15:30 -0600)]
cmake: vkcube/vulkaninfo successfully compile for Android

9 months agocmake: Use pkg-config for Wayland
Juan Ramos [Tue, 10 Oct 2023 18:45:34 +0000 (12:45 -0600)]
cmake: Use pkg-config for Wayland

9 months agocube: Move android files to cube directory
Juan Ramos [Tue, 10 Oct 2023 17:28:05 +0000 (11:28 -0600)]
cube: Move android files to cube directory

Despite being in the "common" folder these files are only used
by vkcube.

9 months agotests: Update googletest to 1.14
Juan Ramos [Mon, 9 Oct 2023 22:09:55 +0000 (16:09 -0600)]
tests: Update googletest to 1.14

9 months agoicd: Add support to mock AHB commands
spencer-lunarg [Fri, 6 Oct 2023 23:21:33 +0000 (08:21 +0900)]
icd: Add support to mock AHB commands

9 months agomock: Ensure VkICD_mock_icd.json uses up to date API version
Juan Ramos [Fri, 6 Oct 2023 22:13:24 +0000 (16:13 -0600)]
mock: Ensure VkICD_mock_icd.json uses up to date API version

closes #617

9 months agocmake: Upgrade to C++17
Juan Ramos [Fri, 6 Oct 2023 17:53:54 +0000 (11:53 -0600)]
cmake: Upgrade to C++17

Addresses various other issues with setting compiler flags.

CMAKE_C_FLAGS / CMAKE_CXX_FLAGS should NOT be used anymore.

Addressed one minor C++17 issue caused by [[nodiscard]].

Remove compiler flags from Application.mk since they weren't
needed and will soon be entirely replaced by CMake.

closes #711

9 months agobuild: Update to header 1.3.267
Mike Schuchardt [Fri, 6 Oct 2023 16:35:38 +0000 (09:35 -0700)]
build: Update to header 1.3.267

- Update known-good
- Generate source

9 months agocmake: Simplify INSTALL_ICD logic
Juan Ramos [Thu, 5 Oct 2023 20:47:32 +0000 (14:47 -0600)]
cmake: Simplify INSTALL_ICD logic

9 months agocmake: Use XCODE variable
Juan Ramos [Thu, 5 Oct 2023 19:16:05 +0000 (13:16 -0600)]
cmake: Use XCODE variable

Simplifies CMake code in various places for Apple builds

9 months agoRemove unused scripts
Juan Ramos [Thu, 5 Oct 2023 18:57:25 +0000 (12:57 -0600)]
Remove unused scripts

9 months agovulkaninfo: Fix VkPhysicalDeviceHostImageCopyPropertiesEXT
Charles Giessen [Thu, 5 Oct 2023 19:44:18 +0000 (13:44 -0600)]
vulkaninfo: Fix VkPhysicalDeviceHostImageCopyPropertiesEXT

This struct has pointers to arrays which must be allocated by the user
before they can be filled out. Thus, to be able to query the properties,
vulkaninfo must call vkGetPhysicalDeviceProperties2 twice. Since there is
not an easy way to add this to the code generator, it is instead excluded
from the main pNext generation and hand written.

9 months agovulkaninfo: Fix printing arrays of Enums
Charles Giessen [Thu, 5 Oct 2023 17:29:43 +0000 (11:29 -0600)]
vulkaninfo: Fix printing arrays of Enums

Previously, the code generator assumed enums were always printed as
key-value pairs, and not in an array. This led to using object
syntax inside of arrays in the JSON output, which is invalid, and is
now fixed.

9 months agodocs: New SDK branch convention
Juan Ramos [Wed, 4 Oct 2023 22:56:58 +0000 (16:56 -0600)]
docs: New SDK branch convention

Next SDK we will be changing branch/tag naming scheme from
sdk-1.x.yyy to vulkan-sdk-1.x.yyy

9 months agocmake: Minor cube cleanup
Juan Ramos [Mon, 2 Oct 2023 22:22:19 +0000 (16:22 -0600)]
cmake: Minor cube cleanup

Remove unused vars
Remove pointless code
Remove usage of CMAKE_LANG_FLAGS

9 months agocmake: Fix vulkaninfo on Android
Juan Ramos [Mon, 2 Oct 2023 22:53:41 +0000 (16:53 -0600)]
cmake: Fix vulkaninfo on Android

9 months agoandroid: Various fixes to get closer to Android on CMake
Juan Ramos [Fri, 29 Sep 2023 20:17:54 +0000 (14:17 -0600)]
android: Various fixes to get closer to Android on CMake

Remove vulkaninfo from Android builds

Don't use the loader on Android

9 months agobuild: Update to header 1.3.266
Mike Schuchardt [Fri, 29 Sep 2023 15:03:04 +0000 (08:03 -0700)]
build: Update to header 1.3.266

- Update known-good
- Generate source

9 months agocmake: General cleanup
Juan Ramos [Fri, 29 Sep 2023 16:14:37 +0000 (10:14 -0600)]
cmake: General cleanup

- APPEND CMAKE_MODULE_PATH
- Remove overly specific CMake code
- Use CMAKE_SYSTEM_NAME to detect Linux/BSD
- Remove unused code
- Simplify install target code
- Use PRIVATE instead of PUBLIC
- Prefer target based commands

9 months agogn: Fix Chromium build
Juan Ramos [Wed, 27 Sep 2023 19:10:36 +0000 (13:10 -0600)]
gn: Fix Chromium build

closes #866

9 months agobuild: Update to header 1.3.265
Mike Schuchardt [Mon, 25 Sep 2023 18:18:29 +0000 (11:18 -0700)]
build: Update to header 1.3.265

- Update known-good
- Generate source (no change)

9 months agoicd: Add VkPhysicalDeviceDriverProperties
Charles Giessen [Tue, 19 Sep 2023 04:24:49 +0000 (22:24 -0600)]
icd: Add VkPhysicalDeviceDriverProperties

This commit adds support for the VkPhysicalDeviceDriverProperties struct
in the output of vkGetPhysicalDeviceProperties2. This is useful for users
of Mock ICD wishing to know the version of MockICD used. The driverInfo
field is used for this purpose and contains the git branch & tag info data.
The use of Git in CMake is how the information is seamlessly gotten and
provided to the source code in the form of compile definitions.

9 months agocmake: Remove generate_icd_files
Juan Ramos [Fri, 22 Sep 2023 18:52:13 +0000 (12:52 -0600)]
cmake: Remove generate_icd_files

Does nothing

9 months agocmake: Fix ICD json logic
Juan Ramos [Fri, 22 Sep 2023 17:43:06 +0000 (11:43 -0600)]
cmake: Fix ICD json logic

closes #861

9 months agocube: Fix shader compilation destination
Charles Giessen [Fri, 22 Sep 2023 15:02:24 +0000 (09:02 -0600)]
cube: Fix shader compilation destination

The build step to compile shaders put them in the build directory rather
than the source directory.

10 months agotest: Turn windows tests on in github CI
Charles Giessen [Wed, 13 Sep 2023 20:03:22 +0000 (14:03 -0600)]
test: Turn windows tests on in github CI

Now that the Vulkan-Loader's find_package support is available, this repo can enable
testing on windows and have it work.

Github actions runs everything in 'admin mode' which causes the loader to ignore
environment variables, which is how the tests find MockICD. Thus, to work around
this behavior we build the loader with LOADER_USE_UNSAFE_FILE_SEARCH so that it
will use environment variables again.

10 months agobuild: Use Vulkan-Loader find_package support
Charles Giessen [Fri, 25 Aug 2023 16:53:04 +0000 (10:53 -0600)]
build: Use Vulkan-Loader find_package support

The Vulkan-Loader now supports find_package properly, allowing this repo to drop
the ad-hoc creation of the Vulkan::Vulkan target.

10 months agocube: Check in SPIRV code
Charles Giessen [Tue, 19 Sep 2023 03:46:46 +0000 (21:46 -0600)]
cube: Check in SPIRV code

The shader code used by vkcube & vkcubepp is now checked into the source.
This prevents users from needing a version of glslang on the system in
order to build the project. While the existing mechanism of fetching a
glslang binary from github was adequate, the version used linked to
VS 2013 which caused build failures with rather cryptic linker errors.
Since changing the shaders happens very infrequently, the decision has
been made to check in the spir-v code.

The CMake logic to compile the shaders remainds, but is put behind a
new build flag COMPILE_CUBE_SHADERS.

10 months agovulkaninfo: Support VK_EXT_surface_maintenance1 properly
Charles Giessen [Tue, 12 Sep 2023 22:18:02 +0000 (16:18 -0600)]
vulkaninfo: Support VK_EXT_surface_maintenance1 properly

The struct VkSurfacePresentModeCompatibilityEXT and
VkSurfacePresentScalingCapabilitiesEXT can only be included in the
VkSurfaceCapabilities2KHR pNext chain if a VkSurfacePresentModeEXT struct is
in the pNext chain for VkPhysicalDeviceSurfaceInfo2KHR. In other words, the
autogen for this extension is not adequate and needs to be special cased.

This is doubly true because the aformentioned structs are 'per-present-mode'
so the output needs to handle printing each struct once per present mode
available, which is not possible with autogenerated code currently.

The easiest solution is to just remove the surface_maintenance1 structs from
autogen in the pNext chain (but keep the autogenerated printing functions).
Then setup the pNext chains appropriate and make the necessary calls, before
printing the data directly.

10 months agobuild: Update to header 1.3.264
Mike Schuchardt [Mon, 11 Sep 2023 18:15:43 +0000 (11:15 -0700)]
build: Update to header 1.3.264

- Update known-good
- Generate source

10 months agoicd: Add second VkCooperativeMatrixPropertiesKHR field
spencer-lunarg [Tue, 12 Sep 2023 07:46:58 +0000 (16:46 +0900)]
icd: Add second VkCooperativeMatrixPropertiesKHR field

10 months agobuild: Update to header 1.3.263
Mike Schuchardt [Tue, 5 Sep 2023 19:51:44 +0000 (12:51 -0700)]
build: Update to header 1.3.263

- Update known-good
- Generate source

10 months agogit: Ignore CMakeUserPresets.json
Juan Ramos [Wed, 30 Aug 2023 22:11:01 +0000 (16:11 -0600)]
git: Ignore CMakeUserPresets.json

10 months agoRemove cmake-format
Juan Ramos [Wed, 30 Aug 2023 18:17:33 +0000 (12:17 -0600)]
Remove cmake-format

10 months agoicd: Add VkSurfacePresentModeCompatibilityEXT support
spencer-lunarg [Mon, 28 Aug 2023 02:15:36 +0000 (11:15 +0900)]
icd: Add VkSurfacePresentModeCompatibilityEXT support

10 months agobuild: Update to header 1.3.262
Mike Schuchardt [Fri, 25 Aug 2023 19:46:56 +0000 (12:46 -0700)]
build: Update to header 1.3.262

- Update known-good
- Generate source

10 months agoAdd QNX support (VK_QNX_screen_surface) to C and C++ variants of vkcube.
Mike Gorchak [Fri, 25 Aug 2023 00:26:13 +0000 (20:26 -0400)]
Add QNX support (VK_QNX_screen_surface) to C and C++ variants of vkcube.

Additionally add support for RGB565 and RGBA5551 pixel formats, because
some Vulkan drivers under QNX report these formats first as preferable.

10 months agoAdd public support for QNX to vulkaninfo
Mike Gorchak [Thu, 24 Aug 2023 19:11:56 +0000 (15:11 -0400)]
Add public support for QNX to vulkaninfo

Sample output:

==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.261

Instance Extensions: count = 16
===============================
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 2
        VK_EXT_direct_mode_display             : extension revision 1
        VK_EXT_display_surface_counter         : extension revision 1
        VK_KHR_device_group_creation           : extension revision 1
        VK_KHR_display                         : extension revision 23
        VK_KHR_external_fence_capabilities     : extension revision 1
        VK_KHR_external_memory_capabilities    : extension revision 1
        VK_KHR_external_semaphore_capabilities : extension revision 1
        VK_KHR_get_display_properties2         : extension revision 1
        VK_KHR_get_physical_device_properties2 : extension revision 2
        VK_KHR_get_surface_capabilities2       : extension revision 1
        VK_KHR_portability_enumeration         : extension revision 1
        VK_KHR_surface                         : extension revision 25
        VK_LUNARG_direct_driver_loading        : extension revision 1
        VK_QNX_screen_surface                  : extension revision 1

Layers: count = 1
=================
VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.2.190, layer version 1:
        Layer Extensions: count = 3
                VK_EXT_debug_report        : extension revision 9
                VK_EXT_debug_utils         : extension revision 1
                VK_EXT_validation_features : extension revision 2
        Devices: count = 1
                GPU id = 0 (Samsung Xclipse 930A)
                Layer-Device Extensions: count = 3
                        VK_EXT_debug_marker     : extension revision 4
                        VK_EXT_tooling_info     : extension revision 1
                        VK_EXT_validation_cache : extension revision 1

Presentable Surfaces:
=====================
GPU id : 0 (Samsung Xclipse 930A):
        Surface type = VK_QNX_screen_surface
        Formats: count = 8
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[4]:
                        format = FORMAT_A2R10G10B10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[5]:
                        format = FORMAT_A2B10G10R10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[6]:
                        format = FORMAT_A1R5G5B5_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[7]:
                        format = FORMAT_R5G6B5_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 4
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_MAILBOX_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
...
...
...

11 months agotest: Make mock ICD tests work on windows
Charles Giessen [Sat, 19 Aug 2023 22:45:26 +0000 (16:45 -0600)]
test: Make mock ICD tests work on windows

This does not enable testing in CI on windows, due to the loader ignoring
VK_DRIVER_FILES when running in admin mode.

11 months agobuild: Use Vulkan-Loader on windows
Charles Giessen [Sat, 19 Aug 2023 20:08:34 +0000 (14:08 -0600)]
build: Use Vulkan-Loader on windows

Previously, the vulkan-1.lib file was checked into the tree, so that it wasn't
a required build step for windows builds. This means that to use functions in
new versions of vulkan, the vulkan-1.lib file would have to be updated, which
is annoying.

This commit makes the necessary changes to allow linking to the vulkan-1.lib
built by Vulkan-Loader directly, as well as adding Vulkan-Loader as a
dependency for windows builds. It was previously only built for linux & macOS.

With the use of the Vulkan-Loader, the FindVulkan.cmake file could be removed,
as well as the checked in vulkan-1.lib files, one each for x86 and x64.

11 months agoUpdate known_good.json
Richard S. Wright Jr [Mon, 21 Aug 2023 19:03:33 +0000 (15:03 -0400)]
Update known_good.json

Minor change just to update to the latest good tag of MoltenVK

11 months agovulkaninfo: Make -j=<GPU> work
Charles Giessen [Sun, 20 Aug 2023 17:36:31 +0000 (11:36 -0600)]
vulkaninfo: Make -j=<GPU> work

The help text indicates that -j=<GPU> should work, but was never implemented
when the code was refactored.

11 months agoicd: Add support for VK_EXT_host_image_copy
Tony Barbour [Wed, 2 Aug 2023 19:11:28 +0000 (13:11 -0600)]
icd: Add support for VK_EXT_host_image_copy

11 months agobuild: Update to header 1.3.261
Mike Schuchardt [Fri, 4 Aug 2023 23:57:24 +0000 (16:57 -0700)]
build: Update to header 1.3.261

- Update known-good
- Generate source

11 months agopMessageIdName maybe NULL.
Water Chika [Wed, 26 Jul 2023 11:13:32 +0000 (11:13 +0000)]
pMessageIdName maybe NULL.

11 months agobuild: Update to header 1.3.260
Mike Schuchardt [Mon, 31 Jul 2023 22:45:59 +0000 (15:45 -0700)]
build: Update to header 1.3.260

- Update known-good
- Generate source

11 months agovulkaninfo: Enable Swapchain Colorspace ext
Charles Giessen [Tue, 25 Jul 2023 16:27:45 +0000 (10:27 -0600)]
vulkaninfo: Enable Swapchain Colorspace ext

This extension may be required to be enabled to enumerate HDR formats, best
to enable it if its available.

11 months agobuild: Update to header 1.3.259
Mike Schuchardt [Mon, 24 Jul 2023 17:27:24 +0000 (10:27 -0700)]
build: Update to header 1.3.259

- Update known-good
- Generate source

12 months agobuild: Update to header 1.3.258
Mike Schuchardt [Fri, 21 Jul 2023 17:09:57 +0000 (10:09 -0700)]
build: Update to header 1.3.258

- Update known-good
- Modify vulkaninfo_generator.py to wrap dynamically-sized ArrayWrapper with
  scope brackets
- Modify vulkaninfo_generator.py to add padding after
  VkPhysicalDeviceHostImageCopyFeaturesEXT to work around pre-release
  drivers with larger versions of this struct.
- Generate source

12 months agobuild: Add API_TYPE variable
Daniel Rakos [Tue, 18 Jul 2023 14:18:46 +0000 (16:18 +0200)]
build: Add API_TYPE variable

12 months agobuild: Fix generator directory references
Daniel Rakos [Mon, 17 Jul 2023 15:36:05 +0000 (17:36 +0200)]
build: Fix generator directory references

12 months agobuild: Update to header 1.3.257
Mike Schuchardt [Mon, 10 Jul 2023 17:46:26 +0000 (10:46 -0700)]
build: Update to header 1.3.257

- Update known-good
- Generate source

12 months agoicd: Add VK_KHR_cooperative_matrix support
spencer-lunarg [Tue, 4 Jul 2023 06:15:11 +0000 (15:15 +0900)]
icd: Add VK_KHR_cooperative_matrix support

12 months agobuild: Default to using the static CRT for MSVC
Charles Giessen [Tue, 27 Jun 2023 23:25:55 +0000 (17:25 -0600)]
build: Default to using the static CRT for MSVC

CMake 3.15 introduced CMAKE_MSVC_RUNTIME_LIBRARY as a way to control
the CRT linked to by default. The old way of searching and replacing
CMAKE_<LANG>_FLAGS does not work because CMake no longer adds the
/MD flag in newer versions. Thus we can remove that code and replace
it with a single instance of CMAKE_MSVC_RUNTIME_LIBRARY.

12 months agocmake: Update update_deps
Juan Ramos [Mon, 26 Jun 2023 18:53:10 +0000 (12:53 -0600)]
cmake: Update update_deps

12 months agoci: Enable Address Sanitizer in tests
Charles Giessen [Thu, 22 Jun 2023 21:08:36 +0000 (15:08 -0600)]
ci: Enable Address Sanitizer in tests

Turns Address Sanitizer on in the linux and macOS github actions runs.

12 months agotest: Expand MockICD test coverage
Charles Giessen [Thu, 22 Jun 2023 18:33:25 +0000 (12:33 -0600)]
test: Expand MockICD test coverage

12 months agobuild: Update to header 1.3.255
Mike Schuchardt [Fri, 23 Jun 2023 19:23:57 +0000 (12:23 -0700)]
build: Update to header 1.3.255

- Update known-good
- Generate source

12 months agoicd: Document parametization for VulkanSC
Charles Giessen [Thu, 22 Jun 2023 18:34:55 +0000 (12:34 -0600)]
icd: Document parametization for VulkanSC

13 months agomock: Fix memory leak issue
Daniel Rakos [Thu, 22 Jun 2023 09:20:54 +0000 (11:20 +0200)]
mock: Fix memory leak issue

13 months agomock: Redo parameterization changes for Vulkan SC
Daniel Rakos [Thu, 22 Jun 2023 09:20:33 +0000 (11:20 +0200)]
mock: Redo parameterization changes for Vulkan SC

13 months agoci: Reduce linux actions combinations
Charles Giessen [Tue, 20 Jun 2023 17:32:24 +0000 (11:32 -0600)]
ci: Reduce linux actions combinations

Reduces the matrix from 32 runs down to 6, making each possible configuration
appear only once rather than test all possible combinations of configurations.

13 months agoicd: Add AllocateCommandBuffer test
Charles Giessen [Tue, 20 Jun 2023 05:19:54 +0000 (23:19 -0600)]
icd: Add AllocateCommandBuffer test

13 months agoci: Add tests to linux & mac action runs
Charles Giessen [Tue, 20 Jun 2023 05:19:09 +0000 (23:19 -0600)]
ci: Add tests to linux & mac action runs

Some tests do not need installed drivers, such as MockICD testing, so is
a prime candidate for cloud based CI.

Windows tests are not enabled for the moment, due to not having vulkan-1.dll
available. Fixing this will take much more work due to how the project is
structured.

13 months agodocs: Remove unneccessary info about ccache and compile commands
Juan Ramos [Tue, 20 Jun 2023 16:19:59 +0000 (10:19 -0600)]
docs: Remove unneccessary info about ccache and compile commands

13 months agobuild: Only inlcude wayland if enabled for MockICD
Charles Giessen [Tue, 20 Jun 2023 04:24:23 +0000 (22:24 -0600)]
build: Only inlcude wayland if enabled for MockICD

13 months agoicd: Move handwritten code into .cpp file
Charles Giessen [Thu, 15 Jun 2023 18:22:52 +0000 (12:22 -0600)]
icd: Move handwritten code into .cpp file

Takes the hand written portions of the mock_icd_generator.py and puts them
in a .cpp file, then moves the code gen into function_declarations.h and
function_definitions.h.

This move makes it easier to maintain the C++ code that exists because it
no longer lives in a python file. This commit does not make adding custom
code easier, as it still is in the python file. The intent of this commit
is to create a baseline that would allow such code to be put inside of C++
instead of python.

Additionally, this commit removes egregious over engineering in the
mock icd CMakeLists.txt. Things removed are macros that are only called
once, foreach loops over single items, and replacing variables that had no
solid reason to be a variable.

13 months agotest: Add basic MockICD test
Charles Giessen [Fri, 16 Jun 2023 00:25:42 +0000 (18:25 -0600)]
test: Add basic MockICD test

13 months agotest: Use build artifacts in tests
Charles Giessen [Fri, 16 Jun 2023 00:20:44 +0000 (18:20 -0600)]
test: Use build artifacts in tests

13 months agotest: Add test infrastructure
Charles Giessen [Thu, 15 Jun 2023 20:05:59 +0000 (14:05 -0600)]
test: Add test infrastructure

Add necessary CMake code to enable tests to be built and run. Most of
the logic is taken from Vulkan-ValidationLayers' and adapted for use
here.

New build option:
BUILD_TESTS - defaults to OFF. Controls whether to build tests.

13 months agobuild: Add googletest dependency for testing
Charles Giessen [Thu, 15 Jun 2023 20:05:29 +0000 (14:05 -0600)]
build: Add googletest dependency for testing

13 months agobuild: Update to C++14 as minimum version
Charles Giessen [Thu, 15 Jun 2023 19:32:35 +0000 (13:32 -0600)]
build: Update to C++14 as minimum version

13 months agobuild: Update to header 1.3.254
Mike Schuchardt [Fri, 16 Jun 2023 18:38:00 +0000 (11:38 -0700)]
build: Update to header 1.3.254

- Update known-good
- Generate source
- Only build vulkaninfo and mockicd with -DVK_ENABLE_BETA_EXTENSIONS instead of
  the entire repo

13 months agoicd: Add vkGetRenderAreaGranularity
scottmarsland [Thu, 1 Jun 2023 07:30:44 +0000 (08:30 +0100)]
icd: Add vkGetRenderAreaGranularity

Add implementation for vkGetRenderAreaGranularity.

13 months agoicd: Use #pragma once in header
Charles Giessen [Wed, 14 Jun 2023 23:25:30 +0000 (17:25 -0600)]
icd: Use #pragma once in header

13 months agoscripts/CMakeLists.txt: append to CMAKE_FIND_ROOT_PATH instead of replacing it
Alexander Kanavin [Fri, 2 Jun 2023 12:13:00 +0000 (14:13 +0200)]
scripts/CMakeLists.txt: append to CMAKE_FIND_ROOT_PATH instead of replacing it

Resetting CMAKE_FIND_ROOT_PATH in particular breaks builds in Yocto
(which is a major cross compiling framework).

13 months agobuild: Update to header 1.3.251
Mike Schuchardt [Wed, 31 May 2023 15:50:02 +0000 (08:50 -0700)]
build: Update to header 1.3.251

- Update known-good
- Generate source

13 months agoicd: Add vkGetDescriptorSetLayoutSupport
spencer-lunarg [Tue, 30 May 2023 08:20:39 +0000 (17:20 +0900)]
icd: Add vkGetDescriptorSetLayoutSupport

13 months agoicd: Fix OOB writes in QueuePerfCounters
Charles Giessen [Fri, 26 May 2023 23:58:18 +0000 (17:58 -0600)]
icd: Fix OOB writes in QueuePerfCounters

vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR was blindly
writing to the pCounters buffer without first checking that the pCounterCount
contained enough space for the data. Now Mock ICD will return VK_INCOMPLETE
if not enough space is available as well as write as many elements as there
is space for.

13 months agovulkaninfo: Only enable necessary instance extensions
Charles Giessen [Fri, 26 May 2023 23:34:43 +0000 (17:34 -0600)]
vulkaninfo: Only enable necessary instance extensions

Previously, vulkaninfo would enable all instance extensions, which caused
validation errors to be generated. Now, vulkaninfo only enables extensions it
knows it needs to, such as:
VK_EXT_debug_report
VK_KHR_get_physical_device_properties2
VK_KHR_portability_enumeration
VK_KHR_surface
<platform specific surface extensions>
VK_KHR_get_surface_capabilities2
VK_KHR_surface_protected_capabilities

13 months agovkcubepp: Fix cmd buffer/pool leak
Tony-LunarG [Thu, 25 May 2023 21:02:12 +0000 (15:02 -0600)]
vkcubepp: Fix cmd buffer/pool leak

13 months agomock: Parameterization changes for Vulkan SC
Daniel Rakos [Mon, 22 May 2023 13:46:07 +0000 (15:46 +0200)]
mock: Parameterization changes for Vulkan SC

13 months agoUpdate known_good.json for MoltenVK 1.2.4
Richard S. Wright Jr [Wed, 24 May 2023 02:03:54 +0000 (22:03 -0400)]
Update known_good.json for MoltenVK 1.2.4

13 months agoicd: Fix WIN32 Mock ICD installation
juan-lunarg [Tue, 23 May 2023 22:02:16 +0000 (16:02 -0600)]
icd: Fix WIN32 Mock ICD installation

Mock isn't a typical library. It's a loadable module which
should be installed in the bin folder for Windows users.

This is consistent with how we treat other modules.

14 months agovulkaninfo: Reduce NVIDIA quaternary version field to 6 bits
Marijn Suijten [Mon, 22 May 2023 14:02:39 +0000 (16:02 +0200)]
vulkaninfo: Reduce NVIDIA quaternary version field to 6 bits

The tertiary version field is shifted 6 bits to the right, meaning there
are only 6 bits left to for the quaternary version field, not 10. See
also:
https://github.com/SaschaWillems/vulkan.gpuinfo.org/blob/1e6ca6e3c0763daabd6a101b860ab4354a07f5d3/functions.php#L305

14 months agomock: Fix image sparse mem requirements 2 queries
Scott.Marsland [Tue, 16 May 2023 13:55:40 +0000 (14:55 +0100)]
mock: Fix image sparse mem requirements 2 queries

Fix vkGetImageSparseMemoryRequirements2 and
vkGetImageSparseMemoryRequirements2KHR queries when
pSparseMemoryRequirements is null.

14 months agomock: Fix sparse image format properties 2 queries
Scott.Marsland [Tue, 16 May 2023 13:40:44 +0000 (14:40 +0100)]
mock: Fix sparse image format properties 2 queries

Fix vkGetPhysicalDeviceSparseImageFormatProperties2 and
vkGetPhysicalDeviceSparseImageFormatProperties2KHR queries when
pProperties is null.

14 months agomock: Extend external memory functionality
Artem Kharytoniuk [Fri, 5 May 2023 21:12:12 +0000 (23:12 +0200)]
mock: Extend external memory functionality

GetPhysicalDeviceExternalBufferProperties changes:
Previous implementation violated property that handle type is at
least compatible with itself. It's needed to implement testing for
VUID-VkMemoryAllocateInfo-pNext-00639

GetFenceWin32HandleKHR/GetFenceFdKHR changes:
Return not null handles to pass
VUID-VkImportFenceWin32HandleInfoKHR-handle-01462