Karl Schultz [Tue, 14 Mar 2017 23:11:24 +0000 (17:11 -0600)]
build: Add uninstall target for Linux
Change-Id: I0addef3265b5a2b5ec7b902d9c0086725a2ebb15
Karl Schultz [Fri, 10 Mar 2017 21:58:10 +0000 (14:58 -0700)]
build: Add pkgconfig file for the Vulkan loader
Fixes #757
On Linux, the build configures a vulkan.pc pkgconfig
file, writing it to <build_dir>/loader. The make 'install'
target then installs this file along with the others so that
it can be found with pkg-config. Then, issuing:
$ pkg-config --libs --cflags vulkan
emits compilation flags for vulkan programs.
Since retrieving the header version from vulkan.h was needed in
order to put the Version in the pc file, this commit also uses
the header version to specify the SO version, so it no longer needs
to be changed for every release.
Change-Id: If83c17bfbb59f2ee05d5f86f5e957fc11871546b
Mike Weiblen [Wed, 8 Mar 2017 05:18:40 +0000 (22:18 -0700)]
tests: Negative tests for VU 00303-00308
Add VU testing to VkLayerTest/InvalidBarriers() test case.
Add some comments.
Add getter method to vktestbinding.h
Change-Id: Ib7f3a0f9a54b6612e2082e2160a671fb12aae687
Mike Weiblen [Wed, 8 Mar 2017 05:18:27 +0000 (22:18 -0700)]
layers: Implement VU 00303-00308
Implement Valid Usages 00303-00308 with new function
ValidateBarrierLayoutToImageUsage() which verifies an
ImageMemoryBarrier's old/new ImageLayouts are compatible with its
Image's ImageUsageFlags.
Rename ValidateImageLayouts() to ValidateBarriersToImages().
Rename some variables:
- internal vars to use Google style.
- vars passed verbatim from Vulkan to use Vulkan names.
Fix issues revealed in layer tests due to these new checks:
- 2 new Unexpected messages in VkLayerTest.
- 1 failing VkPositiveTest.
Update VU database for check_implemented = Y.
Change-Id: I8723f99d515fbea707299b4d1fcf33a4da6b7b0b
Mike Stroyan [Tue, 14 Mar 2017 22:26:24 +0000 (16:26 -0600)]
Merge pull request #1578 from KhronosGroup/stroyan_loader_json_init
loader: Initialize json_version
Mark Lobodzinski [Tue, 14 Mar 2017 16:12:43 +0000 (10:12 -0600)]
header: Update to 1.0.43 header version
- updated include/vulkan/vulkan.h
- updated scripts/cgenerator.py
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- updated loader SOVERSION
- updated include/vulkan/vulkan.hpp
- updated parameter_validation.cpp with new APIs
- updated object_tracker.cpp with new APIs
Change-Id: I1fd812cb376d5cddee5ab4acf2e4f8fe6d33b761
Mark Lobodzinski [Tue, 14 Mar 2017 16:31:48 +0000 (10:31 -0600)]
layers: Remove deprecated KHX extension from OT/PV
Deleted references to GetPhysicalDeviceImageFormateProperties2KHX
and GetPhysicalDeviceProperties2KHX from object_tracker and
parameter_validation.
Change-Id: I83e29bae8302dad6f774886d8472451220b426d2
bungeman [Tue, 14 Mar 2017 17:23:41 +0000 (13:23 -0400)]
layers: Fix round tripping uint32_t through int
Commit 25afc3c "Suppress VC++ 2017 signed/unsigned warning" fixed
issue #1395. However, it did so by static_cast-ing a value back to a
type it already had been. Instead, just avoid round tripping the
'uint32_t' through 'int'.
Mike Weiblen [Tue, 14 Mar 2017 20:14:36 +0000 (14:14 -0600)]
externals: Update GitHub master commit refs
Update glslang_revision, spirv-headers_revision, and spirv-tools_revision
to latest.
Change-Id: Ic14152242a7c3fb7aa1f86730472cddc7c927865
Mark Lobodzinski [Thu, 9 Mar 2017 18:54:48 +0000 (11:54 -0700)]
layers: Add PV Maintenance1 negative viewport check
Negative viewport offsets are now allowed if the Maintenance1 extension
is enabled.
Change-Id: Ifb080ba71d688f431a0d12a9018d746f28377a15
Mike Stroyan [Tue, 14 Mar 2017 19:09:12 +0000 (13:09 -0600)]
loader: Initialize json_version
Fields of json_version were left uninitialized if file_format_version
in a layer json file was incomplete. Initialize them to 0.
Jeremy Hayes [Thu, 9 Mar 2017 21:39:45 +0000 (14:39 -0700)]
tests: Fix DSBufferInfo unexpected errors
Change-Id: I594243d7879ed9999571c4f185724ba42d2ed7b6
Mark Lobodzinski [Tue, 14 Mar 2017 15:32:05 +0000 (09:32 -0600)]
layers: Add missing format specifier to CV
Change-Id: Ie2fb0a861d30153af631960d444db1ff93584f41
Tony Barbour [Mon, 13 Mar 2017 21:29:35 +0000 (15:29 -0600)]
demos: Remove tabs from cube.c
Change-Id: I6ec4465d52db8f3b6d41a13d3238957a41a6ea1f
Mark Lobodzinski [Mon, 13 Mar 2017 21:10:23 +0000 (15:10 -0600)]
layers: Add depthBiasClamp device feature checks
Change-Id: I61e23e3c41a89763c9b65a2b5d7dbf92f015fa24
Mark Lobodzinski [Mon, 13 Mar 2017 15:45:07 +0000 (09:45 -0600)]
layers: Add sparseResidencyAliased feature check
Change-Id: I173c3d6e696e674c7a791838f6921763f03d1660
Mark Lobodzinski [Mon, 13 Mar 2017 15:35:01 +0000 (09:35 -0600)]
layers: Add sparseResidencyBuffer feature check
Change-Id: I53afd9b76957f1c955f3068a4d1ff99f0cc5f543
Mark Lobodzinski [Mon, 13 Mar 2017 15:32:45 +0000 (09:32 -0600)]
layers: Add sparseBinding device feature checks
Change-Id: If1145276554ad8dda2839aa5bfc0b3c796873482
Mark Lobodzinski [Mon, 13 Mar 2017 15:25:44 +0000 (09:25 -0600)]
layers: Add enabled_features accessor function
Change-Id: I509c06794b9301c3b0dcc3ed5ad6e688eac6194d
Mark Lobodzinski [Wed, 1 Mar 2017 23:19:36 +0000 (16:19 -0700)]
layers: Add textureCompressionBC feature check
Change-Id: I4eca8c73a1cc2549402b436f8634fa9e72b9b9ce
Mark Lobodzinski [Wed, 1 Mar 2017 23:17:39 +0000 (16:17 -0700)]
layers: Add textureCompressionASTC_LDR feature check
Change-Id: I862b2e188e0e253890aa9e0fad8f97914e004c0a
Mark Lobodzinski [Wed, 1 Mar 2017 23:15:02 +0000 (16:15 -0700)]
layers: Add textureCompressionETC2 feature check
Change-Id: I13408cd02beda7c4f91a6e9424fa0d1109461b6d
Mark Lobodzinski [Wed, 1 Mar 2017 23:09:07 +0000 (16:09 -0700)]
layers: Add compressed texture query utils
These functions help to identify compressed formats categories.
Change-Id: Ia21da00924eb1f5c6f4a5310676e056899c340af
Mark Lobodzinski [Wed, 1 Mar 2017 22:52:49 +0000 (15:52 -0700)]
layers: Validate samplerAnisotropy device feature
Change-Id: I8b1262c34612870b9c8ebb1f62e7d6755219606f
Mark Lobodzinski [Wed, 1 Mar 2017 22:45:52 +0000 (15:45 -0700)]
layers: Finish multiViewport dev feature validation
Change-Id: I58397785e7b73099d2a890246207075dae643652
Mark Lobodzinski [Wed, 1 Mar 2017 22:01:45 +0000 (15:01 -0700)]
layers: Add alphaToOne device feature validation
Change-Id: I1633cf7a8a5ebeed797cdb5373e5eb2533ce6887
Mark Lobodzinski [Wed, 1 Mar 2017 21:39:38 +0000 (14:39 -0700)]
layers: Validate the depthBounds device feature
Change-Id: I27aa9d678f9e7ce90db325f2a7f7aa215741c8c9
Mark Lobodzinski [Wed, 1 Mar 2017 21:16:17 +0000 (14:16 -0700)]
layers: Validate depthClamp device feature
Change-Id: I61a1c8511b2b142ddf178fbf74654aaad80964bf
Mark Lobodzinski [Wed, 1 Mar 2017 20:58:47 +0000 (13:58 -0700)]
layers: Add drawIndirectFirstInstance feature TODOs
Change-Id: Iba54a78bc72ef169faeb6ce3e92b392c738e0bbe
Mark Lobodzinski [Tue, 28 Feb 2017 21:18:04 +0000 (14:18 -0700)]
layers: Validate device feature multiDrawIndirect
Change-Id: Iaf9daa2bc1e0fe301fb28b6901af2687c232d9a8
Mark Lobodzinski [Tue, 28 Feb 2017 21:06:44 +0000 (14:06 -0700)]
layers: Validate dualSrcBlend device feature
Change-Id: I64984412ad993f2d75095023c3b0eea57b78228e
Mark Lobodzinski [Tue, 28 Feb 2017 20:45:20 +0000 (13:45 -0700)]
layers: Validate imageCubeArray device feature
Change-Id: Ie1bdcc06c71a7ef8a0fbc5d576403f4b1c6e1e75
Yamakaky [Mon, 13 Mar 2017 15:06:49 +0000 (11:06 -0400)]
headers: Add missing include to vk_icd.h
Mark Lobodzinski [Fri, 10 Mar 2017 16:14:00 +0000 (09:14 -0700)]
layers: Add GetNextValidBinding function to CV
Change-Id: Ifaa7aea1c7569ffaf5d417a1cd5caadaa38c96b0
Mark Lobodzinski [Thu, 9 Mar 2017 23:24:13 +0000 (16:24 -0700)]
layers: Move desc set helper to descriptorset module
Change-Id: I695cf51b6fa27df7585582f545c0077efb9fd432
Mark Lobodzinski [Thu, 9 Mar 2017 22:31:42 +0000 (15:31 -0700)]
layers: Move update_template temp structure creation
Change-Id: Ib24bfc08114b8bdded7df0e69bfe3ea531e9df20
Petr Kraus [Sun, 12 Mar 2017 13:00:50 +0000 (14:00 +0100)]
layers: #1522 #1523 Fix VK_REMAINING_* resolve
ResolveRemainingLevelsLayers() modified a copy instead of the live data.
Fixes issues #1522 and #1523
Tony Barbour [Thu, 9 Mar 2017 20:05:51 +0000 (13:05 -0700)]
layers: Don't call driver if skip in PipelineBarrier
Change-Id: I9af6a641bc6e00f8ed3f1ea4cdf4f05321ecee6d
Radovan Birdic [Fri, 10 Mar 2017 20:20:00 +0000 (20:20 +0000)]
build: Increase reloc table size for mips64el
Fixes #1554: Fix build fails for mips64el
Mark Lobodzinski [Wed, 8 Mar 2017 18:50:51 +0000 (11:50 -0700)]
layers: Fix template_update errors in CV
Tied UpdateDescriptorSetWithTemplate into UpdateDescriptorSet
validation.
Change-Id: I00fdd9b90f99b34bb7119eb9c8dd433571f22f1d
Mark Lobodzinski [Tue, 7 Mar 2017 23:37:16 +0000 (16:37 -0700)]
layers: Add UpdateTemplate Ext APIs to CV
Added GPA hooks stub functions, and enables for four new extension
APIs for VK_KHR_descriptor_update_template.
Change-Id: Ifb8b3104030d3ff3da3af85039e85bb84f828872
Mark Young [Thu, 9 Mar 2017 21:17:40 +0000 (14:17 -0700)]
loader: Set pointer to NULL
Cleanup enabled extension array pointer passed down to driver.
If the loader overrode the create info struct, the pointer
could be garbage if the enabled extension count was 0. Now,
make sure it is NULL.
Change-Id: I558d768e786892e7afc44f58b4173a2b8db3deee
Mark Young [Thu, 9 Mar 2017 18:39:41 +0000 (11:39 -0700)]
loader: Use secure_getenv only when necessary
secure_getenv should only be used on something that is security
sensitive. Certain environment variable settings do not fall
into that category. So, only use it when necessary.
Change-Id: Ib8b8dc1a1528a2f67f7cdc25051be078292ee19a
Mark Young [Thu, 9 Mar 2017 17:41:25 +0000 (10:41 -0700)]
loader: Update secure_getenv check
The previous check was against the compiler, not against the libc.
Implement the check in CMake and generate a new header file which
defines appropriate defines (loader_cmake_config.h).
Change-Id: I2ae0e8d482fb4ce13089128157c11d18b0c178b9
Mark Young [Wed, 8 Mar 2017 20:38:35 +0000 (13:38 -0700)]
spelling: Fix spelling errors
Fix some spelling errors (caught by VS2017 spelling extension) and
a few floating func defs that are no longer valid.
Change-Id: Ifd9394227dfe3b3255c27429dadaf405433232d2
Mark Young [Wed, 8 Mar 2017 17:11:52 +0000 (10:11 -0700)]
loader: Update secure_getenv usage
Use secure_getenv always if it's available. If it's not available,
fall back to getenv (because some libc's, like musl, don't export
secure_getenv).
Change-Id: I0cae57e1048dcbbadbdd9cc71cc17d51706161a0
Tony Barbour [Tue, 7 Mar 2017 23:06:55 +0000 (16:06 -0700)]
layers: Set depth to 1 in ci for swapchain images
Change-Id: I64e99f99737e26e284722bcc0ce3dc9518e64438
Ciro Santilli [Tue, 7 Mar 2017 08:00:31 +0000 (08:00 +0000)]
Use nproc instead of ncpu
The command is more widely available in Linux since it is part of Coreutils.
Mark Young [Tue, 7 Mar 2017 20:09:00 +0000 (13:09 -0700)]
layers: Fix parameter validation
An earlier change clobbered part of a parameter validation change.
Change-Id: Ica28e79c17f094637e3a12c44dd25c5283c586ef
Mark Lobodzinski [Mon, 6 Mar 2017 23:18:19 +0000 (16:18 -0700)]
layers: Improve UpdateTemplate variable names
Change-Id: I8e0d26b795fc9f2a2634f4de823967d3f16b15d9
Mark Lobodzinski [Mon, 6 Mar 2017 16:00:21 +0000 (09:00 -0700)]
layers: Parse extension buffer to unwrap handles
The UpdateDescriptorSetWithTemplate extension API contains a
parameter which is a buffer containing Vulkan objects. To get this
through to the driver using the UniqueObjects layer, these handles
must get unwrapped.
Change-Id: I91f573f696eafc00957cbff502aaa8ce96c4e1ba
Mark Lobodzinski [Fri, 3 Mar 2017 17:28:21 +0000 (10:28 -0700)]
layers: Create desc_update_template map for new objs
Store unique_objects DescriptorUpdateTemplate data in a map
for parsing UpdateTempate buffers.
Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c
Mark Lobodzinski [Fri, 3 Mar 2017 15:40:16 +0000 (08:40 -0700)]
layers: Move DescriptorUpdateTemplate functions
In unique_objects, moved these functions from being auto-generated to
being manually written.
Change-Id: Iae7ccac0ad51d57826104bd0532742a098c673ce
Mark Lobodzinski [Mon, 6 Mar 2017 15:59:14 +0000 (08:59 -0700)]
scripts: Allow safe_structs to handle KHR extensions
Deep copies are needed for some of the new extensions.
Change-Id: I7e77fe30a87129aa720225ae16eb87cdba8e626e
Dave Houlton [Tue, 7 Mar 2017 00:21:16 +0000 (17:21 -0700)]
tests: Bugfix check and add mip copy tests
Fixed a bug in the buffer size calculation for compressed mip levels
when copying less than a full block at the perimeter. Added a set of
validation tests that exercise copies in/out of mip levels of
compressed textures. Added an image init() fxn to the test framework
that takes an imageCreateInfo input, to allow full control of image
varieties.
Change-Id: I240ed6e1f45889e58b759f8f261392725dadb498
Dave Houlton [Thu, 2 Mar 2017 21:56:23 +0000 (14:56 -0700)]
layers: Clang-format only, no code changes
This is a whole-file clang format of buffer_validation.cpp, with
no code changes. Left as a separate commit to avoid confusion with
the actual code changes within this file in the other 2 commits.
Change-Id: I4e09c0a465f5187d3753a88bcbafb0e8bee9d782
Dave Houlton [Fri, 3 Mar 2017 00:00:10 +0000 (17:00 -0700)]
layers: Add VUs 1275, 1276, 1277 related to gh1507
Adds 3 new valid usage checks related to the bugfix, and the
layer_validation_tests code to exercise 2 of them. The third check,
01277, cannot be provoked by a test because it would require a
compressed texture format with block z-dimension > 1, which does
not (currently) exist for Vulkan.
Change-Id: I6c467e64c420b6a453af57f7ff86e1465e132988
Dave Houlton [Wed, 1 Mar 2017 23:23:25 +0000 (16:23 -0700)]
layers, Fix checks for GH 1507
Bugfix and refactor for github issue 1507 (and lunar exchange #652).
Fixes buffer size calculation for compressed textures when copy
extent is less than block size, corrected for mip level. Layer tests
modified to avoid breakage from this fix.
Change-Id: If91d6f8c7ce17a3e012923304a3b178e750d2659
Karl Schultz [Fri, 24 Feb 2017 22:45:05 +0000 (15:45 -0700)]
layers: Fix invalid push constant checks (GH953)
Rework of invalid push constant checks, motivated mostly
by some spec updates and prior bad assumptions.
- Add check/test for a shader stage flag being set more
than once in CreatePipelineLayout.
- Remove checks and tests having to do with warning about
overlapping ranges in CreatePipelineLayout. Ranges can
certainly overlap when used in different stages. And
the prohibition of more than one range with the same
stage flag removes the possibility of overlap in the same
stage. These checks were warnings and so probably not
noticed.
Fixes #953
Finishes VU 00871
Change-Id: Icc9d3d84fa3132f266075f2f1d45c243e9e1a65f
Mark Young [Mon, 6 Mar 2017 20:57:13 +0000 (13:57 -0700)]
loader: gh1528 - Move generated files
Move the loader-specific generated files into the loader binary
folder when built.
Change-Id: Ib5f04eada8eb0b89d1d5e50adaf1e964d4f1a6d6
Cort Stratton [Fri, 3 Mar 2017 16:50:51 +0000 (08:50 -0800)]
layers: Added skip_checks to rangeIntersect()
This allows callers to skip redundant/unnecessary checks
outside the validation path.
Cort Stratton [Fri, 17 Feb 2017 20:50:01 +0000 (12:50 -0800)]
layers: GH373 Add memory size/align tests&checks
Cort Stratton [Fri, 17 Feb 2017 20:43:41 +0000 (12:43 -0800)]
layers: Fix copy/paste errors in BindBufferMemory
Incorrect objectType and srcObject arguments to log_msg()
Cort Stratton [Wed, 15 Feb 2017 21:40:43 +0000 (13:40 -0800)]
layers: Refactor InsertMemoryRange() for pre/post
- Added new ValidateInsert*MemoryRange(), called from
PreCallValidateBind*Memory().
- Moved all validation from InsertMemoryRange() into the new function.
- Moved call to Insert*MemoryRange() into PostCallRecordBind*Memory().
Mike Weiblen [Mon, 6 Mar 2017 17:27:15 +0000 (10:27 -0700)]
externals: Update GitHub master commit refs
glslang_revision
33f85b6e
spirv-tools_revision
11fbe5dc
Change-Id: I07a98cd122a8c167b123afcc4787c6c05b29c5c8
Mark Young [Fri, 3 Mar 2017 22:28:57 +0000 (15:28 -0700)]
loader: Fix several leaks
Fix several leaks caught by Valgrind. This change should fix all
memory leaks caught by David Hubbard in pull-request #811.
Change-Id: I55d7f3a6abbc32fde182702c4b9cf1041107c6df
Igor Vuk [Fri, 3 Mar 2017 21:34:39 +0000 (22:34 +0100)]
Docs: Fix a typo in BUILD.md
Igor Vuk [Fri, 3 Mar 2017 21:26:43 +0000 (22:26 +0100)]
Docs: Fix a typo in README.md
Lenny Komow [Thu, 2 Mar 2017 18:29:03 +0000 (11:29 -0700)]
docs: Add new layer registries to loader doc
Change-Id: I185d37096db07585d8b4015201656937fbf5714d
Lenny Komow [Thu, 2 Mar 2017 00:22:29 +0000 (17:22 -0700)]
loader: gh1153 - Modify layer search path
The loader will now seach HKEY_CURRENT_USER in addition to
HKEY_LOCAL_MACHINE when looking up layers in the registries.
Change-Id: I899dc7d65a2fe08f1e471fa8dccba5255f8ef7b7
Mark Young [Wed, 1 Mar 2017 23:22:23 +0000 (16:22 -0700)]
scripts: Update loader automation
Merge a few if's together to make the code easier to follow.
Change-Id: I2453c8217da81befb4f44af19241c13c4aaef8af
James Jones [Wed, 1 Mar 2017 01:26:09 +0000 (17:26 -0800)]
loader: Fix handling of surface parameters
The loader code generation scripts had a bug that
caused all the surface->ICD surface translation C
code to be placed inside a block that only ran if
the ICD didn't support the extension function,
making it effectively a no-op. ICDs that
supported the extension were instead called with
the un-translated surface handle, which could
cause a crash if they were expecting their local
surface handle.
Also, speculatively fix up return handling in this
same class of functions by handling the void
return type.
Jeremy Hayes [Tue, 28 Feb 2017 16:44:45 +0000 (09:44 -0700)]
layers: Remove redundant validation
Remove redundant validation from ValidateCmdBufImageLayouts.
Change-Id: Ia7474e0ca7d0429a8413500f548e1cfbe9f708f1
Chris Forbes [Wed, 1 Mar 2017 03:36:16 +0000 (16:36 +1300)]
layers: Use GetStateStructPtrFromObject rather than open-coding
Now symmetric with the DecrementResources path, and much less code.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Jeremy Hayes [Mon, 27 Feb 2017 22:09:03 +0000 (15:09 -0700)]
layers: Remove redundant validation
Remove redundant validation from ValidateOrIncrementBoundObjects.
Change-Id: I98f9de491d83788cf0b19d4c606d239e1a915e58
Mark Lobodzinski [Tue, 28 Feb 2017 14:59:46 +0000 (07:59 -0700)]
layers: Validate CONCURRENT img/buf queuefamilies
All buffers and images created with SHARING_MODE_CONCURRENT can only
be used on queues matching one of thier designated queue families.
Change-Id: Ia4a532610125d6481a6de5dbd18727a98f815da9
Mark Lobodzinski [Mon, 27 Feb 2017 21:04:47 +0000 (14:04 -0700)]
layers: Prevent bad node access
Change-Id: I6b08302b069d9796c126422a2df90243d82dc225
Mark Young [Tue, 28 Feb 2017 17:17:18 +0000 (10:17 -0700)]
loader: Remove floating file
I had removed the need for loader/table_ops.h in my loader
automatic generation changes, but forgot to remove the file.
Change-Id: Ide46609d9eda354b712844782b97af6f1cc09ef0
Mike Weiblen [Tue, 21 Feb 2017 02:43:02 +0000 (19:43 -0700)]
layers: Add VU data & new entry point
Add logging of VU data and a more detailed check of
EnumeratePhysicalDeviceGroupsKHX to core validation.
Change-Id: Id17a06063673b0f47cdaf8d051974887205d2f6d
Mark Young [Tue, 28 Feb 2017 16:58:04 +0000 (09:58 -0700)]
vulkan: update to header 1.0.42
Updated all necessary files to 1.0.42. This includes the various
headers as well as the loader, and the parameter validation, object
tracking, and threading layers. Additionally, bump all layer JSON
files to 1.0.42.
Also, in this change:
- Enable loader extension automation so that the loader now
generates all extension entry-points automatically during build
to reduce likelihood of missing a critical piece on header
update.
- Enable layer dispatch table extension automation for the same
reason.
- Fixes from Mark Lobodzinski and Tony Barbour to resolve crash
in loader when working with Intel's Windows driver due to
GetInstanceProcAddr getting called on inappropriate command
names.
Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8
Mark Lobodzinski [Tue, 28 Feb 2017 22:09:31 +0000 (15:09 -0700)]
layers: Special-case threading GetSwapchainImages
This API is a special-case for the code-gen in that it sometimes
returns an array of images. These do not need to be counted by
start/finishReadObject and so were moved into the non-generated
part of the layer source.
Change-Id: Iaaab9143abadbf025b5f3c118aa26dae3c6f1bec
Chris Forbes [Tue, 28 Feb 2017 01:25:58 +0000 (14:25 +1300)]
layers: Fix state recorded for swapchain images
Reorder the fields to match the declaration, initialize tiling & type.
Previously the image type ended up as VK_IMAGE_TYPE_1D due to the
default initialization, which caused bad behavior in later validation.
Fixes #1508.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 28 Feb 2017 05:59:20 +0000 (18:59 +1300)]
layers: Factor out marking of first use as read or write...
.. and make the handling of VK_ATTACHMENT_UNUSED consistent across all
cases. Previously we could end up with useless tracking of
VK_ATTACHMENT_UNUSED.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 28 Feb 2017 05:46:44 +0000 (18:46 +1300)]
layers: remove attachment_first_layout tracking
Nothing uses this.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Tue, 28 Feb 2017 04:40:29 +0000 (17:40 +1300)]
layers: Consider resolve attachments to be written in renderpass
Previously, if there was a later read of the attachment within the
renderpass, we'd mistakenly record this attachment as being read-first,
and insist on its contents having been made valid by some write prior to
the renderpass.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Mike Weiblen [Tue, 28 Feb 2017 18:47:46 +0000 (11:47 -0700)]
externals: Update GitHub master commit refs
glslang_revision
f67f9d7e
spirv-headers_revision
88d94037
spirv-tools_revision
4ef3b3e0
Change-Id: Icc3432fcaeb1511579e816f521f8454f2921f2da
Mark Lobodzinski [Mon, 27 Feb 2017 20:08:59 +0000 (13:08 -0700)]
layers: Add PreCallRecord call to CmdPipelineBarrier
Change-Id: Ibf2f742d85f002c7d4993db8968c33a537b76dce
Mark Lobodzinski [Mon, 27 Feb 2017 19:56:14 +0000 (12:56 -0700)]
layers: Split layout transition validation/recording
Split TransitionImageLayouts and TransitionImageAspectLayouts into
ValidateXxx and TransitionXxx routines.
Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499
Mark Lobodzinski [Mon, 27 Feb 2017 18:12:39 +0000 (11:12 -0700)]
layers: Add PreCallValidate to CmdPipelineBarrier
Change-Id: I7e517ec023c2989eb5f977bdbf580e24b4526286
Mike Weiblen [Mon, 27 Feb 2017 19:49:58 +0000 (12:49 -0700)]
layers: Add notes to Valid Usage DB
Change-Id: I590864e3ad5cc454d05404763faf5613aaf0b079
Arda Coskunses [Sat, 25 Feb 2017 18:34:37 +0000 (11:34 -0700)]
layers: Added more format checks to utils
Change-Id: I1f91403656ddb9b69e3c519b35b95a48f3ac2bb4
Mark Lobodzinski [Fri, 24 Feb 2017 15:53:14 +0000 (08:53 -0700)]
layers: GL168, fix bad compressed texel block size
The image<->buffer copy validation was checking against texel block
sizes, but needed the block size in byte. Fixed the bad validation
errors and renamed existing util function and updated a compressed
texture size to match the spec.
Change-Id: I40b9635a4fab131ab1525da51e94c4c5577217be
Mike Schuchardt [Tue, 21 Feb 2017 16:48:06 +0000 (09:48 -0700)]
tests: Add test that uses object on wrong device
Exercise new object tracker handle check by trying to delete a render
pass on the wrong VkDevice.
Change-Id: I4480c5210d399c46b22e4c34630d76922aa934e3
Mike Schuchardt [Tue, 14 Feb 2017 22:33:52 +0000 (15:33 -0700)]
layers: Check all devices for valid object handles
Additional check in ValidateObject to distinguish between an invalid
object and an object that was created on another device.
Change-Id: I939ca7a23df47ad5809e46c780e084085f141c13
Mark Lobodzinski [Wed, 22 Feb 2017 17:55:30 +0000 (10:55 -0700)]
layers: GH1489, fix CmdClearAttachments validation
Calling CmdClearAttachments in a secondary command buffer could
result in bad validation errors as existing checks rely upon
RenderPass begin info data that may not yet be present. Good
validation for this case will come in a follow-on patch series.
Change-Id: Ib169e26f506124f0c1ad75f57de3b6b5146df872
Dave Houlton [Tue, 21 Feb 2017 22:59:08 +0000 (15:59 -0700)]
layers: Fix a bug in depth/stencil packing
Fixed incorrect size calculations for image<->buffer copies
due to special packing rules of depth and stencil formats.
Added test code to layer_validation_tests ImageBufferCopyTests to
exercise these checks.
Change-Id: I90446379ba8888bf91eda6567e18fa1aae9593b1
Karl Schultz [Wed, 22 Feb 2017 20:41:55 +0000 (13:41 -0700)]
build: Change appveyor to build VS 2013 and 2015
Change-Id: Idccb248aa46a5028b9c28d5487760c749a8d61e2
Jeremy Hayes [Wed, 22 Feb 2017 15:53:13 +0000 (08:53 -0700)]
demos: Use device local heap for depth
Fix GH 116: Cube demo does not allocate depth buffer in device local
heap.
Change-Id: Ic368bc039fc555f0d8739b0aeb6648237a6fcc5c
Mike Weiblen [Tue, 21 Feb 2017 21:32:53 +0000 (14:32 -0700)]
layers: Move code to preferred cpp file
PreCallValidateGetImageSubresourceLayout() from core_validation.cpp
to buffer_validation.cpp
Change-Id: Ic55e049fab28384d30768e8c590f158e603dd343
Mike Weiblen [Fri, 10 Feb 2017 04:25:59 +0000 (21:25 -0700)]
tests: VU 732, 733, 739, 740 tests
Create ExerciseGetImageSubresourceLayout() for varioud VU tests
of vkGetImageSubresourceLayout().
Update VU database to indicate implemented tests for those VUs.
Change-Id: I961d9ab54f35d307a87dedcc550d4d72af927dac