Mark Lobodzinski [Wed, 22 Mar 2017 13:37:04 +0000 (07:37 -0600)]
layers: Fill in core_validation log_msg handles
Also changed all object handle zero casts to use TYPE_UNKNOWN.
Change-Id: I212fd9dd50a25dec98d1fbf46caa73401450c89f
Mark Lobodzinski [Tue, 21 Mar 2017 22:41:45 +0000 (16:41 -0600)]
layers: Fill in buffer_validation log_msg handles
Also updated some C-style casts and added TYPE_UNKNOWN where
appropriate.
Change-Id: Ia9c1d013dd73c4f6785df6151ee71715e310187b
Jamie Madill [Tue, 21 Mar 2017 17:48:13 +0000 (13:48 -0400)]
loader: Add guard around cmake header include.
This allows non-cmake platforms to compile the loader. Use a define
named VULKAN_NON_CMAKE_BUILD to disable CMAKE-specific features.
Change-Id: I6f6d8731fe1be60fd138e9fe1006c913fb029b47
Peter Lohrmann [Fri, 17 Mar 2017 23:58:14 +0000 (16:58 -0700)]
layers: Deep copy pQueueFamilyIndicies
IMAGE_STATE/BUFFER_STATE classes did not make deep copies of the
createinfo.pQueueFamilyIndices array, which could cause invalid
warnings to be reported to the user.
Change-Id: I7ebda777de9decb0c532a4999f78573460197fd7
Jamie Madill [Tue, 21 Mar 2017 17:46:11 +0000 (13:46 -0400)]
layers: Fix uses of KHR ifdef to KHX in objecttracker
In a few places, we were using VK_USE_PLATFORM_WIN32_KHR instead of
VK_USE_PLATFORM_WIN32_KHX.
Change-Id: I579ea848868396b9c2877e43ca24780476e55919
Tobin Ehlis [Wed, 15 Mar 2017 18:18:31 +0000 (12:18 -0600)]
layers:Refactor image layout verify/set
VerifyImageLayout had a side effect of setting image layout state if
the layout had not been seen by the cmd buffer. This update moves the
code to set the layout outside of the verify function and instead puts
it into new SetLayout* functions that are now called in the appropriate
PreCallRecord* functions.
Note that the previous behavior caused a side effect where layouts
could be updated even when the call down the chain did not occur.
The updated behavior will always update the layout to what is passed
as the explicit layout for any image copy operations whenever the
call down the chain is made. This is desirable b/c if the layout
didn't match the app saw the error during the Validate* portion of
the call and if they chose to ignore it then validation should
reflect the layout state of the image that was set by the call.
Since the side effect mentioned above is no longer present, this change
includes an update to InvalidImageLayout test where a second call to
vkCmdCopyImage() is made in order to actually transition the initial
image layout state so that expected errors are correct going fwd.
Tobin Ehlis [Tue, 14 Mar 2017 21:38:48 +0000 (15:38 -0600)]
layers:Unify image layout validation functions
VerifySourceImageLayout() and VerifyDestImageLayout() were nearly
identical so I generalized a couple of pieces and combined them in the
single VerifyImageLayout() function.
Mark Lobodzinski [Tue, 21 Mar 2017 16:12:31 +0000 (10:12 -0600)]
header: Update to 1.0.44 Vulkan version
- updated include/vulkan/vulkan.h
- updated scripts/generator.py
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- updated include/vulkan/vulkan.hpp
Change-Id: I1d18921f75ec74484918be6cfdba394fc397d2f5
Mike Schuchardt [Fri, 10 Mar 2017 21:12:35 +0000 (14:12 -0700)]
layers: swapchain queue family count tracking
Add vkGetPhysicalDeviceQueueFamilyProperties2KHR as an alternate way get
queue family count.
Change-Id: Ie0efee916a1bf091eb34c8610eec3c73943db846
Mike Schuchardt [Fri, 10 Mar 2017 21:59:10 +0000 (14:59 -0700)]
layers: swapchain post call record refactor
Change-Id: Id4063c82d9e592f982c59fb12c6d9f06a9e7b35a
Mark Young [Mon, 20 Mar 2017 14:27:14 +0000 (08:27 -0600)]
docs: LX666 - Typos in Docs
Fix issue brought up by Masaki Takano in LunarXchange.
Change-Id: Ib6caa931decf5976e96bcd4629602b7f25b88001
Mark Lobodzinski [Fri, 17 Mar 2017 17:15:24 +0000 (11:15 -0600)]
layers: Fix QueueBindSparse fence validation
If bindInfoCount was 0 fence was not properly retired.
Change-Id: I2b6af38b0181d328eaf1bab2c2109f3492905aa0
Mark Lobodzinski [Fri, 17 Mar 2017 16:52:57 +0000 (10:52 -0600)]
layers: Fix fence validation error in object_tracker
Change-Id: Id03f32f636cef14cb6d549d7c04b05cd5c814d52
Chris Forbes [Fri, 10 Mar 2017 03:48:51 +0000 (16:48 +1300)]
layers: Check use of CapabilityShaderDrawParameters against ext enable
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Fri, 10 Mar 2017 03:45:14 +0000 (16:45 +1300)]
layers: Pass whole layer_data down through more of SC
I know I'd done a bunch of work to reduce the dependency on layer_data
here before, but capability checking needs more broad access when
extensions gate capabilities. Adding yet another crazy parameter to the
intermediate functions just to avoid using layer_data here is silly.
Just plumb it all back through...
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Chris Forbes [Fri, 10 Mar 2017 03:21:55 +0000 (16:21 +1300)]
layers: Track if VK_KHR_shader_draw_parameters is enabled
We need to know this in order to determine whether the corresponding
shader capability is acceptable.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Dave Houlton [Thu, 16 Mar 2017 19:18:15 +0000 (13:18 -0600)]
nop: Clean up comments
Change-Id: I392aba1398381205728aead48d6cfd10aa47ac90
Dave Houlton [Tue, 14 Mar 2017 17:31:20 +0000 (11:31 -0600)]
layers: Add VUs 1200&1201, and a test
Added 2 VU checks for aspectMask on image copy. Added
test CopyImageAspectMismatch to provoke these VUs, and
a handful of other aspect mask VUs previously done but
missing tests.
Change-Id: Ib9c3eb9d95a9295ec485bb14b4221d4198fa6904
Dave Houlton [Tue, 28 Feb 2017 20:16:02 +0000 (13:16 -0700)]
layers: Add VU 01185 and a test
Added check for valid usage 01185. Added test
CopyImageSampleCountMismatch() to verify the check.
Change-Id: I51e76e0334bd4f1c0fe564f241646fc8b788da1e
leigh123linux [Wed, 15 Mar 2017 09:59:36 +0000 (09:59 +0000)]
build: Improve pkg-config to handle 64-bit distros
Fixes #1582
Change-Id: I2f06a7016643f61d7e6341df20f355cb510350ab
Jamie Madill [Thu, 16 Mar 2017 16:53:42 +0000 (12:53 -0400)]
layers: Fix incorrect KHR/KHX ifdefs.
In two places we were checking for the presence of the WIN32 KHR
define instead of the KHX define where the enums and methods are
defined.
Fixes #1593.
Change-Id: I0bf0c2e2ed734ed2c40a44c4cd7d468ba70ca9a4
Mark Young [Sat, 11 Mar 2017 00:31:18 +0000 (17:31 -0700)]
loader: Fix vkEnumeratePhysicalDeviceGroupsKHX
vkEnumeratePhysicalDeviceGroupsKHX was not properly generating the
physical device information or groups. Several changes resolve
most of the issue, however, I'm still seeing issues when certain
layers enabled.
Change-Id: Id8d4553da25491a3d0a97e8d44e21340b41bc09c
Jeremy Hayes [Tue, 14 Mar 2017 20:04:19 +0000 (14:04 -0600)]
tests: Fix ImageLayerUnsupportedFormat errors
Fix ImageLayerUnsupportedFormat unexpected errors.
Change-Id: I7dd4f2b9bae69885abf5031a6257ee3f6fad21fb
Jamie Madill [Wed, 15 Mar 2017 20:17:46 +0000 (16:17 -0400)]
build: Fix potentially uninitialized VS2015 warning
This fixes the a few occurences in demos, the loader and a test.
It also adds the warning to the always-on list so it will prevent
future regressions.
Fixes #1587.
Change-Id: I26f69e977b57749a3ab4ddb548ada95384131edc
Mark Lobodzinski [Wed, 15 Mar 2017 19:13:49 +0000 (13:13 -0600)]
layers: Fix CTS BufferView UpdateTemplate crash
Change-Id: I2d03265b465ffc869f52ca85e6ad23301424a8d7
Tony Barbour [Tue, 14 Mar 2017 14:55:46 +0000 (08:55 -0600)]
demos: Select alpha based on capabilities in cube
Change-Id: I44e3654ee8d2f1b127284ae5f66ca75cb9ff54a7
Tobin Ehlis [Tue, 14 Mar 2017 17:29:01 +0000 (11:29 -0600)]
demos:Add cube option --validate-checks-disabled
Added option to cube demo "--validate-checks-disabled".
This option will use the VK_EXT_validation_flags extension to cause
validation to skip all validation flags that have a flag.
This is meant to provide a basic test for the VK_EXT_validation_flags
extension and find any obvious bugs/crashes.
Tobin Ehlis [Tue, 14 Mar 2017 17:22:50 +0000 (11:22 -0600)]
layers:Connect VK_EXT_validation_flags
Add support for VK_EXT_validation_flags in core_validation.
The only enum currently supported is VK_VALIDATION_CHECK_ALL_EXT which
disables all existing flags in validation. Note that most checks are
still not guarded by flags so that option will only disable the checks
that are guarded by flags.
In testing this I found a bug with AllocateDescriptorSets() where
common state was not updated with the flag enabled so this includes a
fix for that issue as well.
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.