platform/upstream/Vulkan-Tools.git
4 years agovulkaninfo: check that extensions aren't disabled
Charles Giessen [Mon, 18 Nov 2019 22:11:37 +0000 (15:11 -0700)]
vulkaninfo: check that extensions aren't disabled

Previous versions of vulkainfo's autogen code didn't check if enums and
bitmasks from extensions were disabled, possibly letting them leak into
the generated code. This commit checks and skips any fields which aren't
supported.

File changed:
scripts/vulkaninfo_generator.py

Change-Id: I0e6fd9872d9377a17797cfcf6c2fbcee649e3657

4 years agovulkaninfo: return properly on xcb onnection errors
Daniel Charles [Wed, 13 Nov 2019 23:54:08 +0000 (15:54 -0800)]
vulkaninfo: return properly on xcb onnection errors

Calling xcb_disconnect on the connection to release memory and
return.

Otherwise on a headless display with no X11 backend the nullptr
for the connection will cause segmentation fault on following
xcb calls when xcb_connection_has_error returns a code.

examples ran on headless displays

DISPLAY=:0 vulkaninfo returns XCB_CONN_ERROR
DISPLAY=foobar vulkaninfo returns XCB_CONN_CLOSED_PARSE_ERR

v2:restore xcb_connection=nullptr as other xcb calls need it when
error happened.

Signed-off-by: Daniel Charles <daniel.charles@intel.com>
4 years agobuild: Update known good for 1.1.127 Vulkan header
Shannon McPherson [Tue, 5 Nov 2019 23:08:07 +0000 (16:08 -0700)]
build: Update known good for 1.1.127 Vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.h`
- `icd/generated/vk_typemap_helper.h`
- `vulkaninfo/generated/vulkaninfo.hpp`

Change-Id: Iac0b0d48ee0efc5d8e2d0db0a17b71bcb5e69388

4 years agobuild: Update MoltenVK version to v1.0.38
Jeremy Kniager [Wed, 6 Nov 2019 16:31:35 +0000 (09:31 -0700)]
build: Update MoltenVK version to v1.0.38

Change-Id: Idca07170a7ff2f7a6cf163ef9ab814cffc9ae5ea

4 years agovulkaninfo: added more documentation for show-formats
Charles Giessen [Fri, 1 Nov 2019 17:40:27 +0000 (11:40 -0600)]
vulkaninfo: added more documentation for show-formats

The indented behavior was to only show format properties if requested
for text output and always show them for html & json. This commit
modifies the --help output and documentation to better reflect this
behavior.

files modified
 - vulkaninfo/vulkaninfo.cpp
 - vulkaninfo/vulkaninfo.md

Change-Id: I5e35b8af2db74c37dfadf669ffc81e69304fc4e0

4 years agovulkaninfo: Fix gitlab issue 181
Jeremy Kniager [Fri, 1 Nov 2019 15:48:39 +0000 (09:48 -0600)]
vulkaninfo: Fix gitlab issue 181

Fixes vulkaninfo.app bundle crashing on startup.

Change-Id: I515611c28da35a0f55edcb8492d26ad78046c0c2

4 years agovulkaninfo: fix infinite sleep for non text outputs
Charles Giessen [Wed, 30 Oct 2019 22:44:04 +0000 (16:44 -0600)]
vulkaninfo: fix infinite sleep for non text outputs

Previous versions, in win32 would sleep infinitely if a crash occured. This commit will first check if its a text output first before sleeping, to preserve the error if it is in a console but return immediate if it isn't.

Change-Id: Ib1b43001e970c8c3114e666d96b24dc3c557a579

4 years agovulkaninfo: fixed spelling of properties
Charles Giessen [Wed, 30 Oct 2019 21:22:38 +0000 (15:22 -0600)]
vulkaninfo: fixed spelling of properties

Change-Id: I4cd38c06842c99b514b4f289f7856eb810c111f3

4 years agogn: Generate VkICD_mock_icd.json on mac
Mike Schuchardt [Tue, 29 Oct 2019 23:16:17 +0000 (16:16 -0700)]
gn: Generate VkICD_mock_icd.json on mac

4 years agovulkaninfo: add documentation for show-formats
Charles Giessen [Tue, 29 Oct 2019 16:19:49 +0000 (10:19 -0600)]
vulkaninfo: add documentation for show-formats

Change-Id: I5b1aa1bec4daa1e7b2d8a47633011ae7c800b372

4 years agovulkaninfo: add documentation for --show-formats
Charles Giessen [Tue, 29 Oct 2019 00:49:38 +0000 (18:49 -0600)]
vulkaninfo: add documentation for --show-formats

A recent PR was merged that made format properties not shown by
default in the text output. This documents the change in the options
list of the executable.

files changed
 - vulkaninfo/vulkaninfo.cpp

Change-Id: I1db65f8c9fae31dd047856d0f0d483a304405dd2

4 years agobuild: Update known-good commits for SDK 126
Shannon McPherson [Mon, 28 Oct 2019 19:53:33 +0000 (13:53 -0600)]
build: Update known-good commits for SDK 126

Change-Id: I261460fc7612a828cd4d9848a9bcf43c2f2dba41

4 years agobuild: Update known good for 1.1.126 Vulkan header
Shannon McPherson [Tue, 22 Oct 2019 22:25:01 +0000 (16:25 -0600)]
build: Update known good for 1.1.126 Vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `build-android/vulkan-headers_revision_android`
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.cpp`
- `scripts/known_good.json`

Change-Id: I1ef8b689d76c76822b2dab8ef7fd138bb46f7314

4 years agocube: Try to bind to wl_compositor v4
Georges Basile Stavracas Neto [Sat, 5 Oct 2019 14:53:39 +0000 (11:53 -0300)]
cube: Try to bind to wl_compositor v4

VK_KHR_incremental_present requires the client to
bind to wl_compositor v4. This is because internally
some Vulkan Wayland drivers convert VkPresentRegionKHR
to wl_surface.damage_buffer()[1], which is a v4-only
request.

If the Wayland compositor advertises wl_compositor v4,
we can bind to it and make incremental present actually
work.

[1] https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/vulkan/wsi/wsi_common_wayland.c#L862

4 years agobuild: Update known good for 1.1.124 Vulkan header
Shannon McPherson [Tue, 15 Oct 2019 17:45:18 +0000 (11:45 -0600)]
build: Update known good for 1.1.124 Vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `build-android/vulkan-headers_revision_android`
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.h`
- `icd/generated/vk_typemap_helper.h`
- `scripts/known_good.json`
- `vulkaninfo/generated/vulkaninfo.hpp`

Change-Id: Ib6c35389471d8cbdaa60608f76e563ad50271a53

4 years agovulkaninfo: Present Surfaces now wont show duplicates
Charles Giessen [Tue, 8 Oct 2019 16:02:17 +0000 (10:02 -0600)]
vulkaninfo: Present Surfaces now wont show duplicates

If a machine has multiple surface types that work with the
same gpu and have the same properties, vulkainfo will now
list them in a short array instead of duplicating the entire
surfaces information. To do this required being able to compare
vulkan objects, necesitating the autogeneration of comparators
for vulkan structs. This patch also refactors some of the
device creation code to better reflect the actual data
dependencies of the various vulkan objects.

files modified
 - vulkaninfo/vulkaninfo.cpp
 - vulkaninfo/vulkaninfo.h
 - scripts/vulkaninfo_generator.py
 - vulkaninfo/generated/vulkaninfo.hpp

Change-Id: Ifda51eacc3883982a6e2f7f60439827eb355c204

4 years agovulkaninfo: Added asserts to check output
Charles Giessen [Mon, 14 Oct 2019 18:18:06 +0000 (12:18 -0600)]
vulkaninfo: Added asserts to check output

Several places in the output code of vulkaninfo had preconditions,
like the indent level being zero or positive, but had no asserts
checking the value. This commit adds such defensive measures, as well
as a reordering IndentIncrease to be correct in regards to keeping
indents zero or above.

files modified
 - vulkaninfo/outputprinter.h
 - vulkaninfo/vulkaninfo.cpp

Change-Id: Iafa03193407229d345f550c4c4c3a9dd1e235919

4 years agocube: Revert 1.1.114 SDK workaround for vkcube
Jeremy Kniager [Mon, 14 Oct 2019 15:25:47 +0000 (09:25 -0600)]
cube: Revert 1.1.114 SDK workaround for vkcube

During the release of the 1.1.114 MacOS SDK a workaround
for vkcube was needed to get it functioning in time for release.

The underlying problem has since been fixed and this workaround
is not longer necessary.

Change-Id: I3ad3d1bafa44cfbc158820025bb22757d6e5683d

4 years agovulkaninfo: updated json documentation
Charles Giessen [Fri, 11 Oct 2019 15:16:03 +0000 (09:16 -0600)]
vulkaninfo: updated json documentation

Currently, the json option doesn't specify that it only outputs for one
gpu and that it follows a schema. This rectifies that.

file changed
 - vulkaninfo/vulkaninfo.cpp

Change-Id: I3af8d559b2464d7ce00ce21e58a1c3054c0740b4

4 years agobuild: Fix Vulkaninfo Bundle build on MacOS
Jeremy Kniager [Fri, 11 Oct 2019 15:58:21 +0000 (09:58 -0600)]
build: Fix Vulkaninfo Bundle build on MacOS

Fixes MacOS crash while building the Vulkaninfo.app bundle.

Change-Id: Ic1e3c4cef7de5d9458f4d0fc056093abb352bf1a

4 years agovulkaninfo: Fix closing immediately on windows
Charles Giessen [Mon, 7 Oct 2019 22:53:36 +0000 (16:53 -0600)]
vulkaninfo: Fix closing immediately on windows

On windows the console window will immediately close after running
vulkaninfo, this fixes it.

Change-Id: Ic5a86ffb89508d874d9609ed1b4d9222a31798c4

4 years agovulkaninfo: Handle device group extension not available
Charles Giessen [Tue, 8 Oct 2019 16:38:49 +0000 (10:38 -0600)]
vulkaninfo: Handle device group extension not available

Previously if the device didn't support VK_KHR_device_group vulkaninfo
would not catch it and subsequently crash. This commit adds error
checking and bool flag to GetGroupCapabilities for callers to know
if it was successful.

files modified:
 - vulkaninfo/vulkaninfo.cpp
 - vulkaninfo/vulkaninfo.h

Change-Id: Ie8fe9cc46ebe0fa6cae9985d89628d60ddf58cf2

4 years agovulkaninfo: fix extra newlines
Charles Giessen [Fri, 4 Oct 2019 21:02:31 +0000 (15:02 -0600)]
vulkaninfo: fix extra newlines

A slight oversight in the output meant there were extra newlines
in pNext chain traversal.
This makes sure only one newline is printer per item in the chain.

files modified:
 - vulkaninfo/generated/vulkaninfo.hpp
 - scripts/vulkaninfo_generator.py

Change-Id: I3b3cac55c3e90d0b3f59e70fab9c4f56473c6dd6

4 years agovulkaninfo: Major Refactor
Charles Giessen [Tue, 13 Aug 2019 17:16:59 +0000 (11:16 -0600)]
vulkaninfo: Major Refactor

Rewrote vulkan info to use C++ and include autogen capabilities
Properties and Features are now populated based on the xml spec
Improved readability and robustness by seperating vulkan
info gathering, formatting, and printing into seperate files

Files Added:
 - scripts/generate_vulkaninfo.py
 - vulkaninfo/vulkaninfo.h
 - vulkaninfo/vulkaninfo.cpp
 - vulkaninfo/outputprinter.h
 - vulkaninfo/generated/vulkaninfo.hpp
 - vulkaninfo/generated/.clang-format

Files Modified:
 - scripts/kvt_genvk.py
 - vulkaninfo/CMakeLists.txt
 - vulkaninfo/macOS/vulkaninfo.cmake

Files Removed:
 - vulkaninfo/vulkaninfo.c

Change-Id: I8042a6a7949595b75f03d1f3ba48e221d2cc0e8a

4 years agobuild: Update MoltenVK version in known_good.json
Jeremy Kniager [Thu, 19 Sep 2019 17:56:15 +0000 (11:56 -0600)]
build: Update MoltenVK version in known_good.json

Updated MoltenVK version from:
v1.0.36 -> v1.0.37

4 years agobuild: Update known good for 1.1.123 vulkan header
Shannon McPherson [Tue, 17 Sep 2019 19:41:26 +0000 (13:41 -0600)]
build: Update known good for 1.1.123 vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `build-android/vulkan-headers_revision_android`
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.h`
- `icd/generated/vk_typemap_helper.h`
- `scripts/known_good.json`

Change-Id: Ic634680499c375fd29ee3d0816fee33aafa3d44f

4 years agocube: Handle SURFACE_LOST return code
Tony-LunarG [Wed, 11 Sep 2019 20:32:23 +0000 (14:32 -0600)]
cube: Handle SURFACE_LOST return code

Change-Id: I6989c7da3e36ec8531ff390ca9ee2f9710776f11

4 years agoicd: Fix power operator in VkPhysicalDeviceLimits
Mike Schuchardt [Thu, 12 Sep 2019 18:28:15 +0000 (11:28 -0700)]
icd: Fix power operator in VkPhysicalDeviceLimits

Two bugs here:
- ^ (xor) was being used as a power operator
- maxPerStageResources and maxDescriptorSet* limits were mistaking
  footnote notation in the spec for power notation

4 years agobuild: Update glslang version in known-good.json
Jeremy Kniager [Thu, 5 Sep 2019 16:28:58 +0000 (10:28 -0600)]
build: Update glslang version in known-good.json

Change-Id: If9b5814aa0b2f03ae71f23f2fbb1d152995a681b

4 years agovulkaninfo: Fix Issue 227
Jeremy Kniager [Thu, 5 Sep 2019 19:36:12 +0000 (13:36 -0600)]
vulkaninfo: Fix Issue 227

Fixes issue #227 where vulkaninfo on MacOS would
seemingly repeat the same 4 formats 8 times each.

This was simply the function AppDumpSurfaceFormats listing
only the VkFormat attribute from VkSurfaceFormatKHR and not
the VkColorSpaceKHR attribute.

Change-Id: Idba81a69ef317f1d546856b7acb86e8540565d2c

4 years agobuild: Fix known-good MoltenVK building
Jeremy Kniager [Tue, 3 Sep 2019 19:38:52 +0000 (13:38 -0600)]
build: Fix known-good MoltenVK building

MoltenVK seems to have trouble building on the
current version of Vulkan-Headers.

Since Vulkan-Headers doesn't take very long to build and
changes often, this fix removes the reuse of the
Vulkan-Headers repo, whose version is provided by Vulkan-Tools
known-good.json, in the MoltenVK build.

It instead uses the version of Vulkan-Headers provided by
the MoltenVK known-good when building MoltenVK.

**Note:** Vulkan-Tools and other required repos are still
built with the version of Vulkan-Headers provided by
Vulkan-Tools known-good.json.

Change-Id: I1b11122cf0c6ba488acd53a35e4755f00e48376c

4 years agovulkaninfo: Support for VK_EXT_full_screen_exclusive
Charles Giessen [Mon, 12 Aug 2019 21:17:34 +0000 (15:17 -0600)]
vulkaninfo: Support for VK_EXT_full_screen_exclusive

Change-Id: Id3d0dfff6f2efff42a79630b096cdd2829d00e40

4 years agovulkaninfo: support for index_type_uint8_ext
Charles Giessen [Tue, 13 Aug 2019 21:20:26 +0000 (15:20 -0600)]
vulkaninfo: support for index_type_uint8_ext

Change-Id: I649b3972774907600e24508447f19505010bcc87

4 years agovulkaninfo: support VK_EXT_subgroup_size_control
Charles Giessen [Thu, 8 Aug 2019 21:53:40 +0000 (15:53 -0600)]
vulkaninfo: support VK_EXT_subgroup_size_control

Change-Id: Ib51bdff3db00a3bbc66cc2926599890f895d56c2

4 years agobuild: Update known good for 1.1.121 vulkan header
Shannon McPherson [Tue, 27 Aug 2019 16:23:12 +0000 (10:23 -0600)]
build: Update known good for 1.1.121 vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `build-android/vulkan-headers_revision_android`
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.h`
- `icd/generated/vk_typemap_helper.h`
- `scripts/known_good.json`

Change-Id: Id5022fa1d82ae090cd5d50e7937274e93587163e

4 years agobuild: Update known good for 1.1.120 vulkan header
Shannon McPherson [Tue, 20 Aug 2019 23:49:23 +0000 (17:49 -0600)]
build: Update known good for 1.1.120 vulkan header

Changes:
- Updated known good files
- Generated new files using `generate_source.py`

Updated:
- `build-android/vulkan-headers_revision_android
- `icd/generated/mock_icd.h`
- `scripts/known_good.json`

Change-Id: Ia83e6bc8acd0c54d23e97e9c645d0062014f4840

4 years agodocs: Bump minimums to Ubuntu 16.04 and gcc 5.4.0
Mike Weiblen [Tue, 20 Aug 2019 21:13:05 +0000 (15:13 -0600)]
docs: Bump minimums to Ubuntu 16.04 and gcc 5.4.0

Change-Id: I58588d900c89f3247be423857e861ad278d6b9c0

5 years agovulkaninfo: fix memory leaks from pNext chains
Charles Giessen [Mon, 12 Aug 2019 23:04:01 +0000 (17:04 -0600)]
vulkaninfo: fix memory leaks from pNext chains

Change-Id: I99965dabaf7307e52c56f779d79f259fc379c7da

5 years agobuild: Update known-good for 1.1.119 header
Shannon McPherson [Mon, 12 Aug 2019 16:39:11 +0000 (10:39 -0600)]
build: Update known-good for 1.1.119 header

Updated known-good and generated source code for this repository.

Modified:
- `build-android/vulkan-headers_revision_android`
- `icd/generated/mock_icd.cpp`
- `icd/generated/mock_icd.h`
- `icd/generated/vk_typemap_helper.h`
- `scripts/known_good.json`

Change-Id: I10fded5bb6c35a7fc38acdbc23d097ae762f5112

5 years agovulkaninfo: Update output for float controls
Mike Schuchardt [Mon, 1 Jul 2019 04:46:41 +0000 (21:46 -0700)]
vulkaninfo: Update output for float controls

"separate" struct members were renamed and changed from a boolean to an
enum to accommodate a wider variety of hardware implementations.

5 years agobuild: Update Appveyor to VS 2015
Shannon McPherson [Mon, 12 Aug 2019 23:54:57 +0000 (17:54 -0600)]
build: Update Appveyor to VS 2015

Change-Id: I67534f37232f148b955a8860d41408c0fc4da5af

5 years agovulkaninfo: Support for ShaderDemoteToHelperInvocationExt
Charles Giessen [Wed, 7 Aug 2019 23:19:00 +0000 (17:19 -0600)]
vulkaninfo: Support for ShaderDemoteToHelperInvocationExt

Change-Id: I5188ffd477d16a3af8d48c69dc411feee76b1f7f

5 years agofixed double tab for DepthStencilResolveProperties
Charles Giessen [Wed, 7 Aug 2019 22:57:06 +0000 (16:57 -0600)]
fixed double tab for DepthStencilResolveProperties

Change-Id: I51a1b711c3e4d79695cf79bdc162860d7b39d694

5 years agoFixed double tabs in text output
Charles Giessen [Wed, 7 Aug 2019 22:55:37 +0000 (16:55 -0600)]
Fixed double tabs in text output

Change-Id: I591906091fd39e5a44e83849cb9f2d1ae36d1ead

5 years agovulkaninfo: support for texel_buffer_alingment_ext
Charles Giessen [Wed, 7 Aug 2019 22:44:48 +0000 (16:44 -0600)]
vulkaninfo: support for texel_buffer_alingment_ext

Change-Id: I424862d61714b93462bc847c63ae95d6716da154

5 years agobuild: Remove Windows loader build dependency
Lenny Komow [Mon, 5 Aug 2019 16:47:21 +0000 (10:47 -0600)]
build: Remove Windows loader build dependency

On Windows, the loader now has a dependency on the Windows Driver Kit.
In order to avoid adding that dependency here, this change includes
loader .lib files for building on Windows.

Change-Id: I3119caccf7e4e9ba0666a9ba29413137696775ec

5 years agofixed FragmentShaderInterlock missing </details> for html
Charles Giessen [Wed, 7 Aug 2019 23:09:17 +0000 (17:09 -0600)]
fixed FragmentShaderInterlock missing </details> for html

Change-Id: Ica0bddc06cb98507f61fe7699d1ef11e74fadfd9

5 years agovulkaninfo: support for imageless_framebuffer_khr
Charles Giessen [Wed, 7 Aug 2019 22:34:18 +0000 (16:34 -0600)]
vulkaninfo: support for imageless_framebuffer_khr

Change-Id: Ia133befc18201c3bf05238653356cdaa0c162bf9

5 years agovulkaninfo: VK_EXT_fragment_shader_interlock
Charles Giessen [Mon, 5 Aug 2019 22:18:25 +0000 (16:18 -0600)]
vulkaninfo: VK_EXT_fragment_shader_interlock

Adds support for the extension

Change-Id: Ifc18acbdeae3b1b5b568e9a3ddaffb444d14ef86

5 years agovulkaninfo: fix forgotten </details> tag
Charles Giessen [Mon, 5 Aug 2019 21:30:17 +0000 (15:30 -0600)]
vulkaninfo: fix forgotten </details> tag

Fixes incorrect html output from a forgotten html closing tag.

Change-Id: I3e731dafc0b191dfaa71426a7a88b6ccd28477c2

5 years agovulkaninfo: VK_KHR_uniform_buffer_standard_layout
Charles Giessen [Fri, 2 Aug 2019 21:55:55 +0000 (15:55 -0600)]
vulkaninfo: VK_KHR_uniform_buffer_standard_layout

Implements the extension in vulkaninfo

Change-Id: I67ec93c678f0537ea00222bdd35e1e18b28c85d1

5 years agobuild: Update MoltenVK version in known-good.json
Jeremy Kniager [Fri, 26 Jul 2019 20:09:46 +0000 (14:09 -0600)]
build: Update MoltenVK version in known-good.json

Updated MoltenVK version in known-good.json from
v1.0.35 -> v1.0.36

Change-Id: I1b3762d2234ee7da2acc45f081f56aa6e7cfd504

5 years agocube: Workaround macOS cube issue
Mike Schuchardt [Fri, 26 Jul 2019 14:56:30 +0000 (07:56 -0700)]
cube: Workaround macOS cube issue

Latest version of MoltenVK behaves in an apparently non-conformant way
by not allowing some linear images to be mapped to memory with
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.  This change sidesteps the issue
by forcing the use of staging buffer for loading textures.

5 years agowinrt: Correct `VulkanRT-License.txt` typo
Shannon McPherson [Wed, 24 Jul 2019 16:08:14 +0000 (10:08 -0600)]
winrt: Correct `VulkanRT-License.txt` typo

Change-Id: I26c1fbdddc8d6f6fc344164de2cc7cfa74c08919

5 years agodoc: Update docs with codegen instructions
Mike Schuchardt [Tue, 23 Jul 2019 20:06:42 +0000 (13:06 -0700)]
doc: Update docs with codegen instructions

5 years agoCI: Add codegen consistency check
Mike Schuchardt [Tue, 23 Jul 2019 18:52:40 +0000 (11:52 -0700)]
CI: Add codegen consistency check

5 years agobuild: CMake/GN changes for pre-generated source
Mike Schuchardt [Tue, 23 Jul 2019 18:12:29 +0000 (11:12 -0700)]
build: CMake/GN changes for pre-generated source

5 years agoicd: Add generated source to repo
Mike Schuchardt [Mon, 22 Jul 2019 23:58:50 +0000 (16:58 -0700)]
icd: Add generated source to repo

5 years agoscripts: Port codegen script from VVL
Mike Schuchardt [Mon, 22 Jul 2019 23:57:15 +0000 (16:57 -0700)]
scripts: Port codegen script from VVL

5 years agoscripts: Fix mock_icd_generator syntax warnings
Mike Schuchardt [Mon, 22 Jul 2019 23:52:06 +0000 (16:52 -0700)]
scripts: Fix mock_icd_generator syntax warnings

5 years agobuild: Update glslang commit ID in known-good
Jeremy Kniager [Mon, 22 Jul 2019 15:01:52 +0000 (09:01 -0600)]
build: Update glslang commit ID in known-good

Change-Id: I7d1031909f91dc14471d41e33bf50bafffaa7c58

5 years agoscripts: Add required depth/stencil resolve props
Mike Schuchardt [Sun, 21 Jul 2019 21:18:44 +0000 (14:18 -0700)]
scripts: Add required depth/stencil resolve props

Spec mandates that at least VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR be
supported for supportedDepthResolveModes and
supportedStencilResolveModes

5 years agobuild: Update known-good files for 1.1.114 header
Shannon McPherson [Mon, 8 Jul 2019 17:00:24 +0000 (11:00 -0600)]
build: Update known-good files for 1.1.114 header

Change-Id: I8dcbd49e7ccc07f0c891d9c303e1dc0d8445f9e8

5 years agobuild: Update cmake_minimum_required(VERSION 3.10.2)
Mike Weiblen [Tue, 16 Jul 2019 21:12:26 +0000 (15:12 -0600)]
build: Update cmake_minimum_required(VERSION 3.10.2)

Change-Id: I193d23da109a81e0b385a3d9fc54a6d266b6d026

5 years agovulkaninfo: Add descriptor indexing feats/props
Tony-LunarG [Tue, 2 Jul 2019 19:40:06 +0000 (13:40 -0600)]
vulkaninfo: Add descriptor indexing feats/props

Change-Id: I7863fb44fbc1e2c7f7833580799db6b8fb229afe

5 years agodocs: Improve instructions for using update_deps.
Jeremy Kniager [Tue, 2 Jul 2019 19:34:43 +0000 (13:34 -0600)]
docs: Improve instructions for using update_deps.
[ci skip]

Same change as KhronosGroup/Vulkan-ValidationLayers#955

Change-Id: Ifdc30a41f4d7f1e4ad9bc887df6f43f5caaa69f9

5 years agobuild: Fix LunarXchange Issue 862
Jeremy Kniager [Tue, 2 Jul 2019 15:47:29 +0000 (09:47 -0600)]
build: Fix LunarXchange Issue 862

Modified MoltenVK build arguments for MacOS from
`MVK_LOGGING_ENABLED=0` to `MVK_CONFIG_LOG_LEVEL=1`.

This allows users to set the logging information they
want when an application is run using MoltenVK.

By default, only errors are logged.

Change-Id: I471fa28e68b5dc68b10ae17858475981158b2a86

5 years agobuild: Update known-good files for 1.1.113 header
Shannon McPherson [Mon, 1 Jul 2019 21:46:44 +0000 (15:46 -0600)]
build: Update known-good files for 1.1.113 header

Change-Id: I3151722ccb8f3c5d918db8ffd701661a33dcf3b6

5 years agocube: Fix DbgMsg() use of varargs
Mike Weiblen [Thu, 27 Jun 2019 21:18:32 +0000 (15:18 -0600)]
cube: Fix DbgMsg() use of varargs

vprintf (not printf) must be used with va_list.

Also moved flush() outside the va_list's scope.

Change-Id: Ib82b9f7e7ec1f954619c3eadb8dcaeb08abf113a

5 years agovulkaninfo: Add more descriptive error message
Jeremy Kniager [Wed, 26 Jun 2019 16:55:29 +0000 (10:55 -0600)]
vulkaninfo: Add more descriptive error message

Issue #207 mentions that one of the main problems users
encounter when troubleshooting is a failure to create a
Vulkan instance, and suggests that a statement be added
to this error message that describes the most common
causes of this problem.

This commit adds this additional statement to the current
error message.

Change-Id: I2fccf00a8d9895a602fad40913f2380fc1c0a862

5 years agobuild: Update known-good files for 1.1.112 header
Shannon McPherson [Tue, 25 Jun 2019 19:08:41 +0000 (13:08 -0600)]
build: Update known-good files for 1.1.112 header

Change-Id: Ibf447e4f562d49bda5ab60b1bdf4ebf71678a6ae

5 years agovulkaninfo: Fix issue 195
Jeremy Kniager [Tue, 25 Jun 2019 15:21:08 +0000 (09:21 -0600)]
vulkaninfo: Fix issue 195

It was suggested that `maxComputeSharedMemorySize`
from VkPhysicalDeviceLimits be displayed as a decimal
instead of a hex number.

Change-Id: I4b5cb61d56adea4e4d8d33619fabc37e359b8e4a

5 years agovulkaninfo: Fix issue 202
Jeremy Kniager [Mon, 17 Jun 2019 20:04:38 +0000 (14:04 -0600)]
vulkaninfo: Fix issue 202

Vulkaninfo was replacing function `snprintf`
with function `_snprintf` on windows.

This seems to be for backwards compatiblity
with VS2013.

`_snprintf` is considered deprecated in VS2015
as `snprintf` is properly implemented.

Since we are dropping compatibility with VS2013 it
seems like this replacement should be removed.

Due to AppVeyor failing to build when this pre-processor
command is removed entirely, the command has been modified
to replace `snprintf` with `_snprintf_s`.

This command should hopefully be removed entirely in a future
commit.

Change-Id: I85f726fcb0a1cfcc902487100d35dc63d2ba00d8

5 years agobuild: Update MoltenVK in known_good.json
Jeremy Kniager [Mon, 17 Jun 2019 15:51:13 +0000 (09:51 -0600)]
build: Update MoltenVK in known_good.json

Updated MoltenVK version in known_good.json
from 1.0.34v -> 1.0.35v

Change-Id: I3c574d22ab98fcf0e3bd0c718a1a3f5a69287b42

5 years agocube: Add subpass dependencies
Tony-LunarG [Thu, 13 Jun 2019 21:32:05 +0000 (15:32 -0600)]
cube: Add subpass dependencies

Shared depth buffer and image layout transition both
need to be accounted for

Change-Id: Id26bc47798c58e4435a5585def3161105b7fffd1

5 years agocube: Fix compiler warning
Tony-LunarG [Thu, 13 Jun 2019 22:21:57 +0000 (16:21 -0600)]
cube: Fix compiler warning

Change-Id: I8a84556cf55b03cc39402067150fc86be3ed1a0a

5 years agovulkaninfo: Fix HTML format for multi-GPU computer
Jeremy Kniager [Thu, 13 Jun 2019 16:19:03 +0000 (10:19 -0600)]
vulkaninfo: Fix HTML format for multi-GPU computer

Fixes an issue found where the device properties
and extensions would only be printed for the first GPU
on a system when printing in HTML format.

Change-Id: Id6812d7c6b14915afb87fdb740e8918f4609d662

5 years agobuild: Update known-good files glslang commit ID
Jeremy Kniager [Mon, 10 Jun 2019 20:21:20 +0000 (14:21 -0600)]
build: Update known-good files glslang commit ID

Change-Id: I5ef3ac82301d42cbdb616da4c995cf6dc53c6708

5 years agocube: Add usage message on Windows
Tony-LunarG [Tue, 4 Jun 2019 20:11:43 +0000 (14:11 -0600)]
cube: Add usage message on Windows

Change-Id: Id709544863b50def407d7e18c330914bebc9c03a

5 years agocmake: adjust cmake download process to match new design
Bob Ellison [Thu, 6 Jun 2019 16:26:48 +0000 (10:26 -0600)]
cmake: adjust cmake download process to match new design

Also took Karl off the list of e-mail addresses to be notified,
at his request.

5 years agocmake: Use CMake 3.10.2 for CI
Bob Ellison [Thu, 23 May 2019 17:43:54 +0000 (11:43 -0600)]
cmake: Use CMake 3.10.2 for CI

These changes ensure that the Travis and AppVeyor
builds use a known version of CMake.

5 years agobuild: Update known-good files for 1.1.108 header
Shannon McPherson [Wed, 29 May 2019 16:22:32 +0000 (10:22 -0600)]
build: Update known-good files for 1.1.108 header

Change-Id: Ifc19c0e0fcb36f9a5009a73979eb20069e9db463

5 years agovulkaninfo: Run clang-format
Jeremy Kniager [Mon, 13 May 2019 15:23:38 +0000 (09:23 -0600)]
vulkaninfo: Run clang-format

Change-Id: I956d5777b657a25edb7f289047f320345af5cc44

5 years agovulkaninfo: VK_KHR_surface_protected_capabilities
Jeremy Kniager [Mon, 29 Apr 2019 22:03:56 +0000 (16:03 -0600)]
vulkaninfo: VK_KHR_surface_protected_capabilities

Added output for the following structures from
extension VK_KHR_surface_protected_capabilities:

        VkSurfaceProtectedCapabilitiesKHR

Change-Id: I5fb89b8118abbdb3876463f2ff5f96c08221781b

5 years agovulkaninfo: Add VK_EXT_host_query_reset
Jeremy Kniager [Mon, 29 Apr 2019 20:38:50 +0000 (14:38 -0600)]
vulkaninfo: Add VK_EXT_host_query_reset

Added output for the following structures from
extension VK_EXT_host_query_reset:

        VkPhysicalDeviceHostQueryResetFeaturesEXT

Change-Id: Ibc3dce6261ff5e46926d4f969562d377c74f23f5

5 years agovulkaninfo: Add VK_EXT_ycbcr_image_arrays
Jeremy Kniager [Mon, 29 Apr 2019 20:30:06 +0000 (14:30 -0600)]
vulkaninfo: Add VK_EXT_ycbcr_image_arrays

Added output for the following structures from
extension VK_EXT_ycbcr_image_arrays:

        VkPhysicalDeviceYcbcrImageArraysFeaturesEXT

Change-Id: I0f10ae006e99fff5192729ac32bafae2d9170d0c

5 years agoupdate_deps: make --clean-repo switch work in all cases
Bob Ellison [Wed, 8 May 2019 17:32:08 +0000 (11:32 -0600)]
update_deps: make --clean-repo switch work in all cases

--clean-repo right now will raise an exception if the repository
directory was not present.  This makes it work in all cases.

5 years agoscripts: Temporary workaround for python2
Mike Schuchardt [Mon, 22 Apr 2019 18:19:54 +0000 (11:19 -0700)]
scripts: Temporary workaround for python2

Temporarily patch abc module with ABC helper class until upstream
conventions.py script stops using it.

5 years agobuild: Add GN build
Mike Schuchardt [Sat, 20 Apr 2019 01:09:30 +0000 (18:09 -0700)]
build: Add GN build

Add support for GN, Google's meta-build system for Ninja:
https://gn.googlesource.com/gn/

Pull BUILD.gn and script dependencies from
https://chromium.googlesource.com/angle/angle

Add build_overrides for this project to enable both standalone and
component builds using GN.

Add GN configuration to Travis CI

5 years agoscripts: Update known good for 107 header update
Shannon McPherson [Fri, 3 May 2019 20:24:00 +0000 (14:24 -0600)]
scripts: Update known good for 107 header update

Updated:
- `build-android/vulkan-headers_revision_android`
- `scripts/known_good.json`

Change-Id: Ibf9d23645407e78805b8b8192a35338452baaf18

5 years agoFix memory leak in `vkcube`.
Jason Chen [Thu, 4 Apr 2019 04:45:29 +0000 (12:45 +0800)]
Fix memory leak in `vkcube`.

5 years agovulkaninfo: Fix crash at Presentable Surface
Jeremy Kniager [Wed, 1 May 2019 20:32:43 +0000 (14:32 -0600)]
vulkaninfo: Fix crash at Presentable Surface

Checks to make sure surface extensions were enabled
neglected to leave important struct variables outside
the if statements.

This resulted in these variables becoming uninitialized
and causing undefined behaviour.

Change-Id: Ice27314aa1d6520fc83c14726e2075a8574ba883

5 years agovulkaninfo: Check support for surface extensions before using them
Gabríel Arthúr Pétursson [Fri, 19 Apr 2019 13:35:24 +0000 (13:35 +0000)]
vulkaninfo: Check support for surface extensions before using them

Not all ICDs support all the surface extensions that vulkaninfo
enumerates.

For example, on Linux with an ICD that only support VK_KHR_xcb_surface,
vulkaninfo crashes:

Presentable Surfaces:
=====================
ERROR: VK_KHR_xlib_surface extension not enabled.  vkCreateXlibSurfaceKHR not executed!

vulkaninfo/vulkaninfo.c:1427: failed with VK_ERROR_EXTENSION_NOT_PRESENT

5 years agoUpdate CMakeLists.txt
Cody Jackson [Wed, 24 Apr 2019 18:00:17 +0000 (11:00 -0700)]
Update CMakeLists.txt

Adds Control Flow Guard compiler flag to vulkaninfo

Control Flow Guard (CG) protects against some forms of memory corruption.
See https://docs.microsoft.com/en-us/windows/desktop/secbp/control-flow-guard for details.

This compiler flag enables CFG on vulkaninfo. (CFG is already enabled on the Cube project.)

Enabling CFG is a low-risk, "set and forget" low hanging fruit for security hardening.

5 years agoknown_good: Update MoltenVK known_good version ID
Jeremy Kniager [Wed, 17 Apr 2019 15:21:06 +0000 (09:21 -0600)]
known_good: Update MoltenVK known_good version ID

Updated the MoltenVK version in known_good.json to
"v1.0.34"

Change-Id: I81bfec2e80f724815c4e9576386d00a96b784a48

5 years agotest: Update cloud CI to use known_good.json
Jeremy Kniager [Mon, 22 Apr 2019 19:33:59 +0000 (13:33 -0600)]
test: Update cloud CI to use known_good.json

Updates to other repos can cause errors to propagate
from changes that have nothing to do with PRs on
Vulkan-Tools.

This commit changes cloud CI systems to build with
known_good.json in Vulkan-Tools so that issues
affecting other repos do not prevent PRs in Vulkan-Tools
from getting merged.

Change-Id: Iad4907c0bf07322c9b02477e09fed9fd5b72b631

5 years agocube: fix scoping of some variables.
Dave Airlie [Fri, 12 Apr 2019 07:04:48 +0000 (17:04 +1000)]
cube: fix scoping of some variables.

use_invalid: Using "present.pNext", which points to an out-of-scope variable "regions".

In theory these local vars are out of scope when they are used later.

Pointed out by coverity

5 years agocube: remove unused validation_layer_count.
Dave Airlie [Fri, 12 Apr 2019 06:59:23 +0000 (16:59 +1000)]
cube: remove unused validation_layer_count.

This is assigned but never used.

Pointed out by coverity.

5 years agovulkaninfo: use correct type in malloc sizing.
Dave Airlie [Fri, 12 Apr 2019 06:58:03 +0000 (16:58 +1000)]
vulkaninfo: use correct type in malloc sizing.

warning: Result of 'malloc' is converted to a pointer of type 'VkPresentModeKHR', which is incompatible with sizeof operand type 'VkPresentInfoKHR'

Pointed out by coverity.

5 years agovulkaninfo: handle NULL layer_name.
Dave Airlie [Fri, 12 Apr 2019 06:53:19 +0000 (16:53 +1000)]
vulkaninfo: handle NULL layer_name.

Earlier we check for a NULL layer name but not here.

Vulkan-Tools-sdk-1.1.101.0/vulkaninfo/vulkaninfo.c:4403: var_deref_model: Passing null pointer "layer_name" to "strcmp", which dereferences it.

Pointed out by coverity.