platform/upstream/Vulkan-Tools.git
6 years agorepo: Remove interim REPO_ROOT CMake code
Karl Schultz [Thu, 7 Jun 2018 22:55:11 +0000 (16:55 -0600)]
repo: Remove interim REPO_ROOT CMake code

And a few other misc cleanups

6 years agocmake: Fix macOS CMake files to include dylib file
Jeremy Kniager [Thu, 7 Jun 2018 17:56:08 +0000 (11:56 -0600)]
cmake: Fix macOS CMake files to include dylib file

Fixed CMake files for macOS to include the vulkan dylib loader
file in the bundles instead of the vulkan framework file.

Change-Id: Ib59873fc392c8894d8a85b5a10bc0f17aa29061a

6 years agoandroid: Fix CI for Android
Karl Schultz [Wed, 6 Jun 2018 17:13:37 +0000 (11:13 -0600)]
android: Fix CI for Android

6 years agorepo: Reorg to remove Vulkan-Headers submodule
Karl Schultz [Tue, 5 Jun 2018 20:21:36 +0000 (14:21 -0600)]
repo: Reorg to remove Vulkan-Headers submodule

- Remove Vulkan-Headers submodule
- Add CMake code to add VULKAN_HEADERS_INSTALL_DIR and
  VULKAN_LOADER_INSTALL_DIR to search when locating
  Vulkan headers and loader
- CI adjustments for new model
- BUILD.md updates
- Travis-CI Android build temporarily disabled

Fixes #20

6 years agoci: fix travis syntax bug
Karl Schultz [Tue, 5 Jun 2018 21:47:53 +0000 (15:47 -0600)]
ci: fix travis syntax bug

6 years agobuild: Fix CI for updated Vulkan-Loader
Karl Schultz [Tue, 5 Jun 2018 16:50:43 +0000 (10:50 -0600)]
build: Fix CI for updated Vulkan-Loader

Adapt to Vulkan-Loader getting rid of Vulkan-Headers submodule.
Get and build Vulkan-Headers and fix Vulkan-Loader build to use it.

6 years agocube: Fix separate present queue validation errors
Tony-LunarG [Wed, 30 May 2018 20:53:14 +0000 (14:53 -0600)]
cube: Fix separate present queue validation errors

From the spec:

Whilst it is not invalid to provide destination or source access
masks for memory barriers used for release or acquire operations,
respectively, they have no practical effect. Access after a release
operation has undefined results, and so visibility for those accesses
has no practical effect. Similarly, write access before an acquire
operation will produce undefined results for future access,
so availability of those writes has no practical use. In an earlier
version of the specification, these were required to match on both
sides - but this was subsequently relaxed.
These masks should be set to 0.

Change-Id: I495dc86ad62c0651fbc6acbfb0dfbb8245a324be

6 years agodocs: Update build doc
Mark Young [Mon, 4 Jun 2018 22:28:24 +0000 (16:28 -0600)]
docs: Update build doc

Change-Id: I8764e470fe11646fc13cc62e73761c09e2779f6a

6 years agocube: Explicitly set QueueFamilyIndex(s) to QUEUE_FAMILY_IGNORED
Tony-LunarG [Wed, 30 May 2018 17:33:19 +0000 (11:33 -0600)]
cube: Explicitly set QueueFamilyIndex(s) to QUEUE_FAMILY_IGNORED

The QueueFamilyIndex fields only come into play when you want
to use an image in two or more queues from different queue
families, which cube does not do.

Change-Id: I610aa8899539eeb25ca06254b88e6a6d0a2ffc97

6 years agobuild: Add cube(pp) to install target
Karl Schultz [Tue, 29 May 2018 19:09:22 +0000 (13:09 -0600)]
build: Add cube(pp) to install target

- Modify cube and cubepp to obtain the texture image data from
  an include file instead of reading a PPM file at runtime.
  (This is the way it works for Android)
  This removes the need to install an image file or otherwise
  make an image file available in a repo build.
- Add cube and cubepp to the install target.

Note: The file handling code is left in place to make it easy
to add a "-texture_file <file>" option so a user can pass in
a texture file.

Fixes #5

6 years agocube: Remove last DebugReport
Mark Young [Wed, 30 May 2018 14:43:00 +0000 (08:43 -0600)]
cube: Remove last DebugReport

We still had the debug report detection code in cube.  This removes
the last bits of it.

Change-Id: I09559cd56ee4779453221c810d8328cb4c864aef

6 years agocube: Add missing free in IPD code
Karl Schultz [Mon, 28 May 2018 22:16:47 +0000 (16:16 -0600)]
cube: Add missing free in IPD code

Fixes #11

6 years agocmake: Add WSI Build Support Options
Jeremy Kniager [Tue, 22 May 2018 15:20:38 +0000 (09:20 -0600)]
cmake: Add WSI Build Support Options

Fixed CMakelists.txt for vulkaninfo
to generate build files on
Linux with the selected WSI options.

Change-Id: Ied83f0e24dbd08af2ef03066fdfa1443203aa4ad

6 years agobuild: Enable install targets on Windows
Karl Schultz [Mon, 28 May 2018 21:14:19 +0000 (15:14 -0600)]
build: Enable install targets on Windows

Note: cube is not yet being installed.

6 years agoicd: Add a memory format that is unsupported
William Henning [Thu, 24 May 2018 20:14:15 +0000 (14:14 -0600)]
icd: Add a memory format that is unsupported

Hard code into the mock ICD that the memory type at index 3 is
unsupported. This allows the BindImageInvalidMemoryType test in the
validation layers to be run without skipping.

6 years agoicd: Hard code unsupported image formats
William Henning [Thu, 24 May 2018 20:49:16 +0000 (14:49 -0600)]
icd: Hard code unsupported image formats

Hard code that the mock ICD does not support
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, an arbitrary image format not
currently used in any validation layers test. Additionally hard code
that the mock ICD doesn't images created with a sample count of 64 bits.
These hardcoded unsupported image formats git the
CreateImageFormatSupportErrors and CreateImageMaxLimitsViolation tests
in the validation layers to run.

6 years agoicd: Add external buffers, fences, and semaphores
William Henning [Wed, 23 May 2018 20:45:43 +0000 (14:45 -0600)]
icd: Add external buffers, fences, and semaphores

Added calls to vkGetPhysicalDeviceExternal buffer, fence, and semaphore
properties that support for features and handle types.

6 years agobuild: Fix mock ICD install issues
Karl Schultz [Thu, 24 May 2018 21:30:09 +0000 (15:30 -0600)]
build: Fix mock ICD install issues

- Use correct (icd.d) directory
- Make ICD installation OFF by default
- Fix up docs

Fixes #17

6 years agoheader: Update Vulkan-Headers submodule to 1.1.75
Mike Schuchardt [Tue, 22 May 2018 22:48:10 +0000 (16:48 -0600)]
header: Update Vulkan-Headers submodule to 1.1.75

Change-Id: I7cfbb6e3ffb99308f3a77357f6184489aae322af

6 years agoicd: Enable the VK_KHR_push_descriptor extension
William Henning [Thu, 24 May 2018 16:55:48 +0000 (10:55 -0600)]
icd: Enable the VK_KHR_push_descriptor extension

Enabled this extension and updated vkGetPhysicalDeviceProperties2KHR to
fill out the push descriptor properties struct if it's in the pNext
chain.

6 years agocmake: Fix LOADER_REPO_ROOT pointing to SDK
Mark Lobodzinski [Tue, 22 May 2018 20:59:13 +0000 (14:59 -0600)]
cmake: Fix LOADER_REPO_ROOT pointing to SDK

6 years agoscripts: Fix glslang fetch script for odd builds
Mark Lobodzinski [Tue, 22 May 2018 20:41:57 +0000 (14:41 -0600)]
scripts: Fix glslang fetch script for odd builds

Used scirpt location instead of current location as basis for glslang
component installation.

6 years agoTools: Better search for glslang + loader
Tony-LunarG [Tue, 22 May 2018 19:26:26 +0000 (13:26 -0600)]
Tools: Better search for glslang + loader

Change-Id: I1652a5bc29623980e80dad168997fd75d08467e8

6 years agocube: Change glslang location logic for INSTALL_DIR
Mark Lobodzinski [Tue, 22 May 2018 14:40:49 +0000 (08:40 -0600)]
cube: Change glslang location logic for INSTALL_DIR

Now respects GLSLANG_INSTALL_DIR, for instance, if Vulkan-Tools is a
submodule of another repository. Also updated build doc.

6 years agocmake: Rename uninstall target to prevent collisions
Mark Lobodzinski [Tue, 22 May 2018 04:16:38 +0000 (22:16 -0600)]
cmake: Rename uninstall target to prevent collisions

Cmake does not have an uninstall function, and multiple repositories
cannot have targets with the same name. The 'uninstall' target is to
generic, so renaming this target to 'uninstall-Vulkan-Tools'.

6 years agodocs: Update BUILD.md to reflect CMake changes
Jeremy Kniager [Thu, 17 May 2018 17:52:38 +0000 (11:52 -0600)]
docs: Update BUILD.md to reflect CMake changes

Updated BUILD.md to reflect the changes in the
MacOS build workflow after the repo split.

Change-Id: Iff5f89c960b73fec0d1f0b08c7aa448da4873384

6 years agocmake: Update CMake files to build for MacOS
Jeremy Kniager [Thu, 17 May 2018 17:15:43 +0000 (11:15 -0600)]
cmake: Update CMake files to build for MacOS

Updated CMake scripts to add building for MacOS

Change-Id: I413f79e337d33f37891092da97380597e28c8257

6 years agodocs: Clarify loader build requirements
Mark Lobodzinski [Mon, 21 May 2018 19:40:04 +0000 (13:40 -0600)]
docs: Clarify loader build requirements

6 years agocmake: Change name of helper-file cmake target
Mark Lobodzinski [Mon, 21 May 2018 15:22:01 +0000 (09:22 -0600)]
cmake: Change name of helper-file cmake target

Cmake won't tolerate multiple build targets withing a project.
Generate_helper_files has been renamed to resolve conflicts with
other repos.

6 years agodocs: Update build.md for glslang location
Mark Lobodzinski [Wed, 16 May 2018 20:01:01 +0000 (14:01 -0600)]
docs: Update build.md for glslang location

6 years agocube: Download glslangValidator binary
Mark Lobodzinski [Tue, 15 May 2018 20:11:53 +0000 (14:11 -0600)]
cube: Download glslangValidator binary

Obviates the need to set GLSLANG_REPO_ROOT or to have glslang
otherwise installed for building this repo.

6 years agoandroid: Update vulkan_wrapper, add source script
Cody Northrop [Wed, 16 May 2018 19:54:37 +0000 (13:54 -0600)]
android: Update vulkan_wrapper, add source script

* Finally check in the script that generates the wrapper
* Update the script to handle split vulkan files
* Update the checked in vulkan_wrapper.*
* Add a README descrbing how to use the script

6 years agoandroid: Fixes for cube
Cody Northrop [Tue, 15 May 2018 18:08:52 +0000 (12:08 -0600)]
android: Fixes for cube

This restores files that were dropped during the split.

Also migrates support files to this repo, which we will remove
from Vulkan-ValidationLayers and treat like a submodule.

Updates to travis to build cube.

6 years agobuild: Enable install target on Linux
Karl Schultz [Tue, 15 May 2018 16:47:42 +0000 (10:47 -0600)]
build: Enable install target on Linux

Now installs vulkaninfo and mock ICD.
Not yet installing cube(pp) pending decision on issue #5.

6 years agodocs: Update build.md w/loader repo root info
Mark Lobodzinski [Mon, 14 May 2018 20:34:58 +0000 (14:34 -0600)]
docs: Update build.md w/loader repo root info

6 years agodocs: More BUILD.md updates
Mark Lobodzinski [Sun, 13 May 2018 18:09:14 +0000 (12:09 -0600)]
docs: More BUILD.md updates

Added some TODOs.

6 years agorepo: Updated .gitignore file for new structure
Mark Lobodzinski [Sun, 13 May 2018 17:40:09 +0000 (11:40 -0600)]
repo: Updated .gitignore file for new structure

6 years agovulkaninfo: Moved new macOS files into new location
Mark Lobodzinski [Sun, 13 May 2018 15:53:14 +0000 (09:53 -0600)]
vulkaninfo: Moved new macOS files into new location

6 years agorepo: Turn on AppVeyor CI
Karl Schultz [Sun, 13 May 2018 00:17:39 +0000 (18:17 -0600)]
repo: Turn on AppVeyor CI

6 years agorepo: Turn on Travis-CI
Karl Schultz [Sat, 12 May 2018 23:13:33 +0000 (17:13 -0600)]
repo: Turn on Travis-CI

Add test to run vulkaninfo with mock ICD.

6 years agocmake: Fix GLSLANG_REPO_ROOT for Linux
Mark Lobodzinski [Sat, 12 May 2018 22:59:30 +0000 (16:59 -0600)]
cmake: Fix GLSLANG_REPO_ROOT for Linux

6 years agocmake: Use GLSLANG_REPO_ROOT to find glslangValidator
Mark Lobodzinski [Sat, 12 May 2018 22:43:33 +0000 (16:43 -0600)]
cmake: Use GLSLANG_REPO_ROOT to find glslangValidator

6 years agocmake: Add FindVulkan.cmake for older cmake installs
Mark Lobodzinski [Sat, 12 May 2018 22:00:00 +0000 (16:00 -0600)]
cmake: Add FindVulkan.cmake for older cmake installs

6 years agocmake: Add LOADER_REPO_ROOT to repo
Mark Lobodzinski [Sat, 12 May 2018 21:58:15 +0000 (15:58 -0600)]
cmake: Add LOADER_REPO_ROOT to repo

Also added in warning if git submodule update --init is not run.

6 years agorepo: Fix git submodules and AppVayor badge
Karl Schultz [Sat, 12 May 2018 20:38:31 +0000 (14:38 -0600)]
repo: Fix git submodules and AppVayor badge

6 years agoscripts: Add helper file generator back in for icd
Mark Lobodzinski [Sat, 12 May 2018 03:15:07 +0000 (21:15 -0600)]
scripts: Add helper file generator back in for icd

Mock ICD now uses the typemap helper, added the helper file generator
back in, along with associated lvl_genvk mods.

6 years agovulkaninfo: Fix some merge conflicts
Mark Lobodzinski [Sat, 12 May 2018 02:19:37 +0000 (20:19 -0600)]
vulkaninfo: Fix some merge conflicts

6 years agobuild: Android mods to remove layers
Mark Lobodzinski [Fri, 11 May 2018 21:29:27 +0000 (15:29 -0600)]
build: Android mods to remove layers

6 years agodocs: Updated markdown files for new repo content
Mark Lobodzinski [Fri, 11 May 2018 03:18:46 +0000 (21:18 -0600)]
docs: Updated markdown files for new repo content

6 years agorepo: Delete include directory and subdirs
Mark Lobodzinski [Fri, 11 May 2018 03:00:58 +0000 (21:00 -0600)]
repo: Delete include directory and subdirs

6 years agoheaders: Switched cmake files to Vulkan-Headers
Mark Lobodzinski [Fri, 11 May 2018 03:00:28 +0000 (21:00 -0600)]
headers: Switched cmake files to Vulkan-Headers

6 years agoheaders: Added vulkan-headers as a submodule
Mark Lobodzinski [Fri, 11 May 2018 02:53:16 +0000 (20:53 -0600)]
headers: Added vulkan-headers as a submodule

6 years agovulkaninfo: Move vulkaninfo.rc file
Mark Lobodzinski [Fri, 11 May 2018 02:41:08 +0000 (20:41 -0600)]
vulkaninfo: Move vulkaninfo.rc file

Change-Id: Ic974500a0334a9de0bb7317f6aa77693cfa36869

6 years agorepo: Delete unused files
Mark Lobodzinski [Fri, 11 May 2018 02:40:18 +0000 (20:40 -0600)]
repo: Delete unused files

Change-Id: I4a8985b087ac999fdcebfc61c812ff0c1f6b91bf

6 years agocmake: More cmake fixups
Mark Lobodzinski [Fri, 11 May 2018 02:34:08 +0000 (20:34 -0600)]
cmake: More cmake fixups

Removed duplicate vulkaninfo directives, renamed project, killed
some dead comments.

Change-Id: Ibf580ac0fb5f8ebec0a68fe9c36f7905dbccc594

6 years agorepo: Delete unused code generators
Mark Lobodzinski [Thu, 12 Apr 2018 15:19:17 +0000 (09:19 -0600)]
repo: Delete unused code generators

Change-Id: I1ef619a117c6ec9c2befe0458eb8502894ecff6c

6 years agorepo: Delete smoketest
Mark Lobodzinski [Thu, 12 Apr 2018 15:16:41 +0000 (09:16 -0600)]
repo: Delete smoketest

Change-Id: I44b5b0c5e54a1fdbbfbce6b3ebb4788f0aa5871c

6 years agorepo: Delete glslang files
Mark Lobodzinski [Wed, 11 Apr 2018 18:22:03 +0000 (12:22 -0600)]
repo: Delete glslang files

Change-Id: I42e66cf9dc4a4db7a86bc2f29086fad532b9f629

6 years agorepo: Delete gtest submodule
Mark Lobodzinski [Tue, 10 Apr 2018 22:33:10 +0000 (16:33 -0600)]
repo: Delete gtest submodule

Change-Id: Ib366f7550753cc2de3a65285e2a79afec48200a0

6 years agorepo: Delete loader, layers, tests files
Mark Lobodzinski [Tue, 10 Apr 2018 20:01:13 +0000 (14:01 -0600)]
repo: Delete loader, layers, tests files

Change-Id: I28b8833df82946457325353cc03d3f91e6a776cf

6 years agoandroid: Build cube for android
Mark Lobodzinski [Wed, 11 Apr 2018 21:58:57 +0000 (15:58 -0600)]
android: Build cube for android

Change-Id: I0ff87c345098d51a24115bbb33cbb60a488efb45

6 years agocmake: Clean up main cmakelists.txt file
Mark Lobodzinski [Wed, 11 Apr 2018 21:15:31 +0000 (15:15 -0600)]
cmake: Clean up main cmakelists.txt file

Delete unnecessary cmake, move non-common stuff to consitituent cmake
files.

Change-Id: I158c50511a2b9810f6b2fa198d4d8aee5a23ac93

6 years agocube: Move cube directory up to top level dir
Mark Lobodzinski [Wed, 11 Apr 2018 19:38:11 +0000 (13:38 -0600)]
cube: Move cube directory up to top level dir

Change-Id: Ie1116b0b6de742b4f85834a4c9d1927dd641e19b

6 years agovulkaninfo: Move vulkaninfo from demos to top level
Mark Lobodzinski [Wed, 11 Apr 2018 18:26:57 +0000 (12:26 -0600)]
vulkaninfo: Move vulkaninfo from demos to top level

Change-Id: Ifb946c4eacd950f8c021399b87e9437edf5533bf

6 years agocmake: Remove building and setup of glslang
Mark Lobodzinski [Wed, 11 Apr 2018 18:19:26 +0000 (12:19 -0600)]
cmake: Remove building and setup of glslang

Change-Id: If982a9c517bf2a180ba2d1cf853d49f46412b13d

6 years agoscripts: Remove generators from lvl_genvk.py
Mark Lobodzinski [Thu, 12 Apr 2018 15:18:22 +0000 (09:18 -0600)]
scripts: Remove generators from lvl_genvk.py

Also remove unneeded include from common_codegen.py.

Change-Id: I1b6833acb5654217d85bbc4284713aa12fa1a104

6 years agodemos: Remove smoketest demo from build
Mark Lobodzinski [Thu, 12 Apr 2018 15:16:04 +0000 (09:16 -0600)]
demos: Remove smoketest demo from build

Change-Id: I2a958901a8ac84b782a62b80245999725f4cff3e

6 years agobuild: Add FindVulkan, disable layers, ldr, tsts
Mark Lobodzinski [Thu, 12 Apr 2018 15:11:49 +0000 (09:11 -0600)]
build: Add FindVulkan, disable layers, ldr, tsts

Added FindVulkan cmake helper, disabled build of layers, loader,
and tests in cmake file.

Change-Id: I30a65e3a821c58b36971298ea6f7c7515cbda444

6 years agolayers: Add object type string helper for cube
Mark Lobodzinski [Tue, 10 Apr 2018 21:40:04 +0000 (15:40 -0600)]
layers: Add object type string helper for cube

Change-Id: I4233528c4fa60a7729a8c2985e3b2a1097234ae3

6 years agoicd:Add GPDP2 support for descriptor indexing
Tobin Ehlis [Fri, 11 May 2018 19:44:33 +0000 (13:44 -0600)]
icd:Add GPDP2 support for descriptor indexing

Set some default mock icd values for vkGetPhysicalDeviceProperties2
query of VkPhysicalDeviceDescriptorIndexingPropertiesEXT props.

6 years agolayers:Moving to GPDF2
Tobin Ehlis [Fri, 11 May 2018 17:11:34 +0000 (11:11 -0600)]
layers:Moving to GPDF2

Update layer_data struct to track safe_VkPhysicalDeviceFeatures2 struct
instead of VkPhysicalDeviceFeatures. Currently just doing previous
checks using the VkPhysicalDeviceFeatures member of GPDF2 struct. Will
follow-on with checking against extension structs.

6 years agolayers:Store GPDF2 struct
Tobin Ehlis [Fri, 11 May 2018 13:39:16 +0000 (07:39 -0600)]
layers:Store GPDF2 struct

In PHYSICAL_DEVICE_STATE track safe_VkPhysicalDeviceFeatures2 instead
of the old VkPhysicalDeviceFeatures. Initially just passing the
VkPhysicalDeviceFeatures of VkPhysicalDeviceFeatures2 wherever this was
used. This is laying groundwork to start using/comparing extended
features in core validation.

6 years agoicd:Fix Windows build
Tobin Ehlis [Fri, 11 May 2018 16:09:41 +0000 (10:09 -0600)]
icd:Fix Windows build

Make sure we generate vk_typemap_helper.h for mock icd.

6 years agolayers: add missing VkFormatFeatureFlags checks
Cort Stratton [Wed, 2 May 2018 00:18:06 +0000 (20:18 -0400)]
layers: add missing VkFormatFeatureFlags checks

Checks for TRANSFER_SRC / TRANSFER_DST formats were added to:
- vkCmdClearColorImage
- vkCmdCopyImage
- vkCmdResolveImage
- vkCmdCopyImageToBuffer
- vkCmdCopyBufferToImage
These checks require VK_KHR_maintenance1 or Vulkan 1.1.

Existing checks were adapted to use the new helper function:
- vkCmdClearDepthStencilImage
- vkCmdBlitImage

6 years agolayers: Add GetApiVersion() helper
Cort Stratton [Fri, 4 May 2018 18:35:18 +0000 (14:35 -0400)]
layers: Add GetApiVersion() helper

6 years agolayers: fix imageview 3D layout transition
Dave Houlton [Tue, 8 May 2018 20:58:01 +0000 (14:58 -0600)]
layers: fix imageview 3D layout transition

Fix an oversight when recording a 3D image subresource layout transition
that is set by way of a 2D or 2D_ARRAY image view.

Change-Id: Ifbf7645fb2705fef6f82030f4e3e1da0e9da2f2c

6 years agodemos: Add MacOS surface output to vulkaninfo
Jeremy Kniager [Wed, 9 May 2018 20:23:32 +0000 (14:23 -0600)]
demos: Add MacOS surface output to vulkaninfo

Added output for a MacOSSurface in vulkaninfo
and modified the CMake files to include the
new files needed for this change:

metal_view.m Objective-C code to hook into Metal
metal_view.h metal_view.m's header file

Change-Id: Ib7f9185a86703b2a300b2ce3be46f130c90d1b6b

6 years agoicd:Add support for extended features queries
Tobin Ehlis [Wed, 9 May 2018 22:39:27 +0000 (16:39 -0600)]
icd:Add support for extended features queries

Update mock ICD generator so that if we have an extension that's been
promoted to core, the core version will call any existing custom
implementation of the extension function.

Update Features query to detect the two existing extension structs
(VkPhysicalDeviceDescriptorIndexingFeaturesEXT and
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT) and enable all of
those features when those queries are present.

6 years agoloader: Fix gcc 8.1 cast warning
Lenny Komow [Wed, 9 May 2018 17:09:58 +0000 (11:09 -0600)]
loader: Fix gcc 8.1 cast warning

Change-Id: Id8f0301c4f208d185abe2cc3df71021cb4aa29b1

6 years agoloader: Fix unhandled out of memory errors
Lenny Komow [Wed, 9 May 2018 16:48:41 +0000 (10:48 -0600)]
loader: Fix unhandled out of memory errors

Change-Id: I3b672a9d54e1509b550407f1b4ffae58b48beb85

6 years agoloader: Remove duplicated delimiting chars in paths
Martin Blanchard [Wed, 9 May 2018 21:47:12 +0000 (22:47 +0100)]
loader: Remove duplicated delimiting chars in paths

Before loading a manifest file, its full path is strcmp() with already
loaded ones in order not to load the same file twice. While being simple
and efficent, this mechanism is not able to detect subtle duplicates
like these:

/usr/share/vulkan/icd.d/intel_icd.x86_64.json
/usr/share//vulkan/icd.d/intel_icd.x86_64.json

This patch ensure that searched paths do not contains such duplicated
directory delimiting characters in order to avoid this kind of problem.

Fixes #2331
Fixes #2629

6 years agotests: Fix min image transfer granularity test
William Henning [Fri, 4 May 2018 19:08:05 +0000 (13:08 -0600)]
tests: Fix min image transfer granularity test

This test as written was guaranteed to be skipped. It would skip the
test if the first graphics queue family found had a
minImageTransferGranularity with a width, height, or depth of less
than 4. The spec guarantees that any graphics queue family's min
transfer granularity will be 1 for the width, height, and depth. The
rewritten test is now only skipped if no queue supporting copy
operations is found with a large enough granularity.

Also the usage flags on the src and dst image needed to be fixed.
Additionally, the extent of the copies dst and src images were changed
to always be multiples of the min transfer granularity.

Finally, I added a device profile that has a queue with a large enough
min transfer granularity to not skip this test.

6 years agolayers: Rework attachment use conflict checks
Chris Forbes [Fri, 4 May 2018 00:36:39 +0000 (17:36 -0700)]
layers: Rework attachment use conflict checks

Previously buffer_validation covered part of this, but not everything.

V2: - Fix repeated ATTACHMENT_RESOLVE where I meant ATTACHMENT_PRESERVE
    - Fix camelcase noise in a bunch of places
    - Rename VkAttachmentReference& variables to attachment_ref to avoid
      attachment.attachment etc.
    - clang-format tidy-up
    - Move positive case to VkPositiveLayerTest

6 years agolayers: Do renderpass dag validation before call
Chris Forbes [Fri, 4 May 2018 00:10:50 +0000 (17:10 -0700)]
layers: Do renderpass dag validation before call

Previously this would contribute to skip /after/ the call, which
accomplishes nothing.

6 years agodemos: Unify capitlization in json output
Shannon McPherson [Thu, 3 May 2018 16:16:45 +0000 (10:16 -0600)]
demos: Unify capitlization in json output

Change-Id: Ie74c686af656e346789b30ec1aba41457170c6d2

6 years agodemos: Add help options to vulkaninfo
Shannon McPherson [Wed, 2 May 2018 22:28:00 +0000 (16:28 -0600)]
demos: Add help options to vulkaninfo

Change-Id: I43886920e5ce1feb2e293ed46a3e8c23a217ca69

6 years agolayers: fix a multiplane imageview bug
Dave Houlton [Fri, 4 May 2018 18:37:44 +0000 (12:37 -0600)]
layers: fix a multiplane imageview bug

Change-Id: If11059dca9716a90134d9d362351634fa07a8ecd

6 years agolayers: Track display and display mode objects
Shannon McPherson [Wed, 2 May 2018 21:24:37 +0000 (15:24 -0600)]
layers: Track display and display mode objects

Add VkDisplayKHR and VkDisplayModeKHR tracking to
VK_LAYER_LUNARG_object_tracker.

Change-Id: I63004cfe734793593bea12700ea9cd1bdefeab0d

6 years agolayers: image transfer granularity check fixes
Cort Stratton [Fri, 4 May 2018 05:12:23 +0000 (01:12 -0400)]
layers: image transfer granularity check fixes

- Use appropriate VUIDs for all checks
- Update tests to check for VUIDs instead of message substrings
- Image granularity tests should be also be run on compressed images.
  They're *mostly* redundant with existing compressed-format-only checks,
  but I can't convince myself that they're *always* redundant, and the
  spec doesn't say to skip them.
- Removed comments that the checks should be moved elsewhere; IMO they're
  fine where they are, but I welcome second opinions.
- Compressed-format alignment checks should also apply to _422 single-plane
  formats.

6 years agolayers: Fix down-chain null funcptr crashes
Mark Lobodzinski [Thu, 3 May 2018 19:16:52 +0000 (13:16 -0600)]
layers: Fix down-chain null funcptr crashes

Modified dispatch table helper to replace null device extension
function pointers with an appropriate stub function.

Change-Id: If5e22333f084d3f41c0eefdf3e82c9060b872e8c

6 years agodemos: Fix cube ActualTimeLate function
Liam Middlebrook [Thu, 3 May 2018 22:52:32 +0000 (15:52 -0700)]
demos: Fix cube ActualTimeLate function

The ActualTimeLate function in cube.c is supposed to check if a
VkPastPresentationTimingGOOGLE structure indicates that the
presentation happened within a refresh-cycle duration of the
desired presentation time.

However currently ActualTimeLate will always return false, because
it is calculating the presentation deadline as `actual + rdur`.
This change calculated the presentation deadline as
`desired + rdur`.

Reviewed-by: Andy Ritger <aritger@nvidia.com>
6 years agotests: Add tests for indexed draw checking
Karl Schultz [Wed, 2 May 2018 00:32:06 +0000 (18:32 -0600)]
tests: Add tests for indexed draw checking

New tests to exercise new checks for indexed draw count and offset.

Add VkRenderFramework::DestroyRenderTarget() and call it from
VkTriangleTest so that VkTriangleTest cleans up after itself,
allowing it to be called multiple times within a single framework
instantiation.

Introduce VkBufferObj as a typedef for vk_testing::Buffer.

Fixes #2448

Change-Id: Iab513c7f50ef390c210ea76e7ef3f67d7e3d40f8

6 years agolayers: Add checks for indexed draw count/offset
Karl Schultz [Thu, 3 May 2018 01:40:34 +0000 (19:40 -0600)]
layers: Add checks for indexed draw count/offset

Check that the first index and index count are within the bounds
of an index buffer for DrawIndexed, taking into account any
offset specified in the binding of the index buffer.

Fixes #2448

Change-Id: I47a1acbf0bb0e586692c75380d8d43a1c72450fd

6 years agolayers: remove duplicate GetEnabledExtensions() function
Cort Stratton [Thu, 3 May 2018 17:42:10 +0000 (13:42 -0400)]
layers: remove duplicate GetEnabledExtensions() function

6 years agotests: Clean up MapMemWithoutHostVisibleBit test
William Henning [Wed, 2 May 2018 16:42:26 +0000 (10:42 -0600)]
tests: Clean up MapMemWithoutHostVisibleBit test

Simplified this test by removing an uneccessary creation of a VkImage.
Instead, the test now just directly allocates unmappable memory and
attempts to map it.

6 years agolayers: Remove Fill Memory warnings
Mark Lobodzinski [Tue, 1 May 2018 18:58:13 +0000 (14:58 -0400)]
layers: Remove Fill Memory warnings

Implementation was incomplete, and had been reduced to producing
non-specified warnings.

Change-Id: I34a4bbf1f572f337b5f9f9316e9717f52645d8dc

6 years agolayers: Fix segv during DebugReportCallback setup
John Zulauf [Tue, 1 May 2018 19:28:27 +0000 (13:28 -0600)]
layers: Fix segv during DebugReportCallback setup

Change debug log message to use correct VkObjectType to
VkDebugReportObjectTypeEXT method, avoiding the index out-of-bounds
lookup that caused a SEGV.

Change-Id: Ibb6e485eccb36ff0e9b49f0722d8f2d0bf660982

6 years agolayers: PreRecord Free/Destroy calls
John Zulauf [Thu, 26 Apr 2018 22:30:39 +0000 (16:30 -0600)]
layers: PreRecord Free/Destroy calls

To avoid Destroy/Create and Free/Alloc race conditions (when a driver
returns a destroyed(freed) handle between the PreCall and PostCall
phases of a validation intercept routine, PostCallRecord functionality
has been moved to PreCall.  This affects the following calls

FreeMemory
DestroyFence
DestroySemaphore
DestroyEvent
DestroyQueryPool
DestroyBuffer
DestroyBufferView
DestroyImage
DestroyImageView
DestroyPipeline
DestroySampler
DestroyDescriptorSetLayout
DestroyFramebuffer
DestroyRenderPass
FreeDescriptorSets

Did not alter the destroy functions for Instance, Device, or the Debug
or layer extensions.

Change-Id: I5133982eaa1a0c94283fa922d9c3bcc90b5a6223

6 years agocore validation: extend CLEAR LOAD_OP check to new DS image layouts
Slawomir Cygan [Tue, 24 Apr 2018 15:18:26 +0000 (17:18 +0200)]
core validation: extend CLEAR LOAD_OP check to new DS image layouts

Extend check for load operation vs first time use image layout to
new read-only depth stencil image layouts.

The new layouts were added in VK_KHR_maintenance2 / Vulkan 1.1
and follow similar restrictions to VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL.

Spec:

"
For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
 the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL.

For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL.
"

6 years agotests: test behavior when dualSrcBlend feature is disabled
Cort Stratton [Wed, 25 Apr 2018 20:44:08 +0000 (13:44 -0700)]
tests: test behavior when dualSrcBlend feature is disabled