Tobin Ehlis [Thu, 24 Sep 2015 21:18:22 +0000 (15:18 -0600)]
demos: Query device features in cube prior to creating device
Cody Northrop [Mon, 28 Sep 2015 21:09:32 +0000 (15:09 -0600)]
layers: Add constructors for layer_data
Mike Stroyan [Mon, 28 Sep 2015 19:47:29 +0000 (13:47 -0600)]
layers: Remove object map before vkDestroy*
Don't use object as dispatchable after destroy.
Ian Elliott [Mon, 28 Sep 2015 17:24:53 +0000 (11:24 -0600)]
WSI Validation: Removed 2 checks that are driver-specific.
The purpose of this layer is to validate the application's usage of WSI, not to
validate the driver's conformance with WSI.
Jon Ashburn [Mon, 28 Sep 2015 15:49:53 +0000 (09:49 -0600)]
misc: Change all JSON files to abi version 0.9.0
David Pinedo [Mon, 28 Sep 2015 15:16:54 +0000 (09:16 -0600)]
demos: vulkaninfo: increase console buffer size so that output can be read
Mike Stroyan [Fri, 25 Sep 2015 23:02:22 +0000 (17:02 -0600)]
layers: remove static declaration of get_my_data_ptr
Windows compiler won't allow static on specialization.
Mike Stroyan [Fri, 25 Sep 2015 22:36:21 +0000 (16:36 -0600)]
layers: Image layer does not need to reserve space
Image layer had been calling imageMap.reserve to recover from memset of imageMap.
That is no longer needed.
Mike Stroyan [Fri, 25 Sep 2015 22:34:13 +0000 (16:34 -0600)]
layers: don't memset layer data in get_my_data_ptr
get_my_data_ptr was zeroing data after using new.
It should leave the layer data as its constructor set it.
Ian Elliott [Fri, 25 Sep 2015 22:20:23 +0000 (16:20 -0600)]
Remove WSI from "General Pending Work" section of layer documentation.
Ian Elliott [Fri, 25 Sep 2015 22:19:06 +0000 (16:19 -0600)]
Move documentation for Swapchain -> it's a validation layer
Ian Elliott [Fri, 25 Sep 2015 21:50:55 +0000 (15:50 -0600)]
WSI Validation: Add error enum and document Swapchain layer.
Courtney Goeltzenleuchter [Thu, 24 Sep 2015 17:51:05 +0000 (11:51 -0600)]
misc: Move snprintf define to vk_sdk_platform.h
Windows doesn't define snprintf so we need to #define
it to what Windows does use in our SDK platform header.
Michael Lentine [Wed, 9 Sep 2015 19:39:13 +0000 (12:39 -0700)]
Make layers build on android.
Courtney Goeltzenleuchter [Thu, 24 Sep 2015 23:27:08 +0000 (17:27 -0600)]
tri: cleanup valgrind errors
Integrate changes from merge request #5.
Courtney Goeltzenleuchter [Thu, 24 Sep 2015 23:16:48 +0000 (17:16 -0600)]
cube: Fix valgrind warnings
Ian Elliott [Fri, 25 Sep 2015 00:33:16 +0000 (18:33 -0600)]
Change ERROR -> PERF_WARN in vkAcquireNextImageKHR().
Ian Elliott [Tue, 22 Sep 2015 16:51:24 +0000 (10:51 -0600)]
WSI Validation: Initial WSI "swapchain" validation layer.
Dominik Witczak [Tue, 22 Sep 2015 16:25:33 +0000 (18:25 +0200)]
cube/tri: Changed invalid <size> argument value for vkMapMemory()
Mark Lobodzinski [Thu, 24 Sep 2015 15:51:47 +0000 (09:51 -0600)]
layers: LunarXChange #123 fix - Validate Update/FillBuffer outside RP
Validated that these are not called in an active RP, added validation tests
for these and some other renderpass-dependent APIs.
Mike Stroyan [Thu, 24 Sep 2015 16:37:08 +0000 (10:37 -0600)]
layers: Note pending work for ObjectTracker
Instance and device specific objects.
Refcounts of duplicate non-dispatchable objects.
Tobin Ehlis [Tue, 22 Sep 2015 16:11:37 +0000 (10:11 -0600)]
layers: Added Image layer to validation test suite with new test for bad ImageView
Tobin Ehlis [Tue, 22 Sep 2015 14:40:52 +0000 (08:40 -0600)]
layers: Update Image layer to support validation callback error return status
Tobin Ehlis [Mon, 21 Sep 2015 21:20:28 +0000 (15:20 -0600)]
layers: Update Image layer to offload view.c validation checks from driver
Moved checks related to ImageView creation from the driver into the Image layer. Added image.h header and ENUMs for various Image error types, along with documenation for each type.
Courtney Goeltzenleuchter [Wed, 23 Sep 2015 18:31:50 +0000 (12:31 -0600)]
bug-14715: DrawIndirect fix
This patch contains fixes to structure layout for draws.
These structures are accessed by HW and must be in a specific order.
This change also includes reordering of the parameters for
vkCmdDraw and vkCmdDrawIndexed.
Courtney Goeltzenleuchter [Wed, 23 Sep 2015 18:30:48 +0000 (12:30 -0600)]
layers: Remove unneeded layer_common.h
The header only had one include in it.
Courtney Goeltzenleuchter [Wed, 23 Sep 2015 18:28:10 +0000 (12:28 -0600)]
layers: layer generate confused by Count parameter
The generator was getting confused by the argument list of
vkCmdDrawIndexed(cmdBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance)
It saw instanceCount and then wanted to expand firstInstance.
I had to terminate it match search after one miss to stop it recognizing firstInstance as an array of Instance items.
Mark Lobodzinski [Wed, 23 Sep 2015 20:45:29 +0000 (14:45 -0600)]
loader: Remove instance validation checks from debug_report.c
Cannot reach these points with an invalid instance value.
Mike Stroyan [Tue, 18 Aug 2015 21:56:18 +0000 (15:56 -0600)]
layers: release mutex in DrawState
Release mutex when last instance is destroyed.
Mike Stroyan [Tue, 18 Aug 2015 20:48:34 +0000 (14:48 -0600)]
layers: VkDestroyInstance+VkDestroyDevice clear ObjectTracker maps
Don't complain about lingering objects more than once.
Once their device or instance is gone don't keep their information around.
This should change dramatically to have independent maps for each instance/device.
Don't complain about other devices remaining in vkDestroyDevice.
Jens Owen [Wed, 23 Sep 2015 18:33:17 +0000 (14:33 -0400)]
Added request for VkShaderCreateInfo.stage check
GregF [Wed, 23 Sep 2015 17:16:44 +0000 (11:16 -0600)]
build: fix update_external_sources.bat to pick up SPIRV rev32 for glslang
Mark Lobodzinski [Wed, 23 Sep 2015 15:44:22 +0000 (09:44 -0600)]
loader: Remove validation checks from loader.c
These checks are covered by ObjectTracker.
Courtney Goeltzenleuchter [Mon, 21 Sep 2015 23:19:25 +0000 (17:19 -0600)]
bug-14365: add dynamic state to PSO
This commit covers phase 2 of the removal of dynamic
state objects. Now, an application can include an array
of VK_DYNAMIC_STATE_* values that tell the driver
which PSO dynamic state elements to use.
I.e. if VK_DYNAMIC_STATE_LINE_WIDTH was specified in the
pDynamicState array then the ICD should use the lineWidth
defined at PSO create time and ignore any set using
vkCmdSetLineWidth.
To accomplish that the driver will make a copy of the
dynamic state specified in the PSO as well as a bitmask
of the affected state. When vkCmdSet* is called, the
driver will check if a PSO override is current and ignore
the call if so.
At PSO bind time the command buffer's dynamic state
will be updated and the PSO override bitmask set so that
any future vkCmdSet*'s will be appropriately ignored.
TODO: Validation layer should probably indicate a warning
if app tries to do vkCmdSet on state defined by the PSO.
Courtney Goeltzenleuchter [Mon, 21 Sep 2015 17:44:06 +0000 (11:44 -0600)]
bug 14365: make separate viewport and scissor cmds
Courtney Goeltzenleuchter [Thu, 17 Sep 2015 21:06:17 +0000 (15:06 -0600)]
bug 14365: replace dynamic state objects
This is phase 1 of the replacement of dynamic state objects.
In this commit we remove the create and destroy functions
and rename the CmdBind... with CmdSet...
Courtney Goeltzenleuchter [Fri, 18 Sep 2015 22:30:24 +0000 (16:30 -0600)]
layers: Add function to check if msg will be logged
A layer can use will_log_msg to determine if any output
at the designated notification level(s) will be sent
somewhere. This will allow a validation layer to avoid
high compute validation tests if the results are going
to be looked at.
Mark Lobodzinski [Thu, 17 Sep 2015 21:17:34 +0000 (15:17 -0600)]
intel: Removed ICD validation checks from dev.c
GregF [Tue, 22 Sep 2015 23:07:37 +0000 (17:07 -0600)]
build: move to SPIR-V rev 32
Mark Lobodzinski [Tue, 22 Sep 2015 15:33:21 +0000 (09:33 -0600)]
intel: Removed ICD validation checks from img.c
Moved validation into device_limits layer, created layer utils
files for format utilities, added validation tests, updated validation
doc, updated test framework to call GetPhysicalDeviceProperties.
Tony Barbour [Mon, 21 Sep 2015 21:17:33 +0000 (15:17 -0600)]
Remove libpng and zlib dependencies, add copyrights
Jon Ashburn [Tue, 22 Sep 2015 19:11:00 +0000 (13:11 -0600)]
loader: Add lock around cJSON so big loader lock is not needed as much
cJSON not thread safe. Add a lock around cJSON calls so instance
extension and layer queries don't need the big lock. This allows layers
to do queries from CreateInstance.
Tobin Ehlis [Tue, 22 Sep 2015 20:00:58 +0000 (14:00 -0600)]
layers: DeviceLimits warns if queue properties not queried prior to vkCreateDevice()
Tobin Ehlis [Tue, 22 Sep 2015 19:52:37 +0000 (13:52 -0600)]
demos: Update Cube to select graphics queue based on query of queue properties
Also enabling DeviceLimits and Image layers when --validate option selected.
GregF [Tue, 22 Sep 2015 19:58:21 +0000 (13:58 -0600)]
build: fixes for latest SPIR-V rev 31
Primarily, this deals with new binding field in metadata rather than having
location field do double duty.
Ian Elliott [Tue, 22 Sep 2015 16:20:23 +0000 (10:20 -0600)]
WSI: Small code changes to deal with latest WSI header.
A structure's sType was missed in the grand renaming that took place a while
ago, and was fixed with the latest WSI header changes.
Ian Elliott [Tue, 22 Sep 2015 16:13:25 +0000 (10:13 -0600)]
WSI: Update vk_ext_khr_device_swapchain.h to revision 53 (SDK 0.9)
Mike Stroyan [Thu, 10 Sep 2015 20:12:01 +0000 (14:12 -0600)]
layers: ShaderChecker can attempt calls on errors
Some errors are non-lethal. Make calls after finding errors.
Allow attempts to read an unwritten output
or to use a fragment shader that will not write all outputs.
Just make the error callback and continue with that API call unless
the boolean callback result is true, indicating the call should be prevented.
Mike Stroyan [Thu, 10 Sep 2015 20:10:25 +0000 (14:10 -0600)]
layers: fix ShaderChecker hang on stage mismatch
validate_interface_between_stages was sometimes iterating past end of maps.
Mike Stroyan [Fri, 11 Sep 2015 19:29:21 +0000 (13:29 -0600)]
layers: make DrawState globals static
Prevent symbol name collisions, especially with other layers.
GregF [Mon, 21 Sep 2015 23:53:57 +0000 (17:53 -0600)]
build: bring update_external_sources.sh to latest rev 31 SPIR-V
Tobin Ehlis [Thu, 17 Sep 2015 20:18:16 +0000 (14:18 -0600)]
Finished migration of validation checks out of cmd_pipeline.c
Added check to DrawState layer for submission of Primary cmd buffer in vkCmdExecuteCommands() call. Added a test to verify the check.
Replaced some other checks in cmd_pipeline.c with asserts and the checks themselves are already handled in ParamChecker.
Tobin Ehlis [Thu, 17 Sep 2015 18:24:13 +0000 (12:24 -0600)]
layers: Add Idx buffer alignment check to DrawState
At vkCmdBindIndexBuffer() time, verify that offset param falls on an aligment boundary as set by indexType param. New check enum is DRAWSTATE_VTX_INDEX_ALIGNMENT_ERROR.
Removed checks for this from the driver and added a validation test and documentation for the new check.
ParamChecker has a check to verify indexType param is an acceptable value, but it's after the call so documented a TODO for ParamChecker to push this check prior to call.
Tobin Ehlis [Thu, 17 Sep 2015 14:46:18 +0000 (08:46 -0600)]
Remove old checks from pipeline.c and verify that they're handled in validation
Most checks were already handled in DrawState.
Added additional check for invalid patchControlPoints along with a new test, but test can't run on sample driver b/c TESS shaders not supported by the shader compiler.
For check that VBO vtx & attrib binding counts don't exceed VB array limit, added comment noting that this is a device-specific limit that should be captured in API-defined "maxVertexInputBindings" and added to DeviceLimits.
Also added pending task for ParamChecker to fix how it handles arrays in vkCreateGraphicsPipelines() call. It has a bug in how it handles check that each shader "stage" is within acceptable enum limits.
Tobin Ehlis [Mon, 21 Sep 2015 15:36:47 +0000 (09:36 -0600)]
layers: Fix bug where logging_callback was not being correctly cleaned up
Chris Forbes [Thu, 17 Sep 2015 23:40:23 +0000 (11:40 +1200)]
layers: Make passing a non-SPIRV shader to CreateShaderModule an error
Various real drivers are not tolerant of the wrapped-GLSL-blob hack that
was used early in Vulkan development. Rather than simply bypassing most
of the validation when one of these blobs is seen, make it an error.
Structurally, move the validation out of the shader_module ctor in
preparation for the callback being able to signal whether to bail out.
V2: Adjustment for descriptor validation landing
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Tobin Ehlis <tobin@lunarg.com>
Tobin Ehlis [Fri, 18 Sep 2015 20:32:12 +0000 (14:32 -0600)]
layers: Fix APIDump to handle "stdout" special case
Also setting example vk_layer_settings.txt file to have APIDump write to stdout.
Jon Ashburn [Fri, 18 Sep 2015 18:53:16 +0000 (12:53 -0600)]
loader: Fix a few possibly unitialized variables
Cody Northrop [Fri, 18 Sep 2015 17:26:59 +0000 (11:26 -0600)]
layers: Add documentation for SHADER_CHECKER_MISSING_DESCRIPTOR
Chris Forbes [Fri, 14 Aug 2015 00:04:59 +0000 (12:04 +1200)]
layers: Require pipeline layout to contain all referenced descriptors
If the SPIRV image uses a descriptor (for constant buffer, image, etc)
we must declare it in the pipeline layout.
We won't complain about unused junk in the pipeline layout, but not
declaring something that *is* used is an error.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Courtney Goeltzenleuchter <courtney@lunarg.com>
Chris Forbes [Fri, 14 Aug 2015 00:04:39 +0000 (12:04 +1200)]
layers: Collect descriptor usage from SPIRV images
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Courtney Goeltzenleuchter <courtney@lunarg.com>
Chris Forbes [Wed, 12 Aug 2015 03:03:22 +0000 (15:03 +1200)]
layers: Shadow descriptor set layout in ShaderChecker
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Courtney Goeltzenleuchter <courtney@lunarg.com>
Tobin Ehlis [Thu, 17 Sep 2015 22:33:58 +0000 (16:33 -0600)]
layers: Update DrawState array of PIPELINE_NODEs to be vector
Tobin Ehlis [Thu, 17 Sep 2015 22:27:04 +0000 (16:27 -0600)]
layers: Add return value for Generic vkCreateInstance() function
Courtney Goeltzenleuchter [Thu, 17 Sep 2015 17:16:47 +0000 (11:16 -0600)]
misc: Enable nulldriver on Linux
Build the null driver on linux so it's easier to keep it up-to-date
with header changes.
Courtney Goeltzenleuchter [Thu, 17 Sep 2015 17:21:14 +0000 (11:21 -0600)]
bug 14537: nulldrv: add CreateFlags to ImageFormatProperties
Courtney Goeltzenleuchter [Thu, 17 Sep 2015 17:19:46 +0000 (11:19 -0600)]
nulldrv: Remove unused function
Courtney Goeltzenleuchter [Thu, 17 Sep 2015 17:18:22 +0000 (11:18 -0600)]
nulldrv: Remove return code for void functions
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 23:01:46 +0000 (17:01 -0600)]
misc: bump header version to 170
This is version of header included in the provisional spec release
branch: release_provisional_I_20150910
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 22:38:23 +0000 (16:38 -0600)]
Bug 14318: Clarify image layout transitions in a RenderPass
merge request 337.
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 22:23:55 +0000 (16:23 -0600)]
bug 14640: add pNext/sType to VkDeviceQueueCreateInfo
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 22:12:45 +0000 (16:12 -0600)]
Bug 14644 - add poolUsage/maxSets to VkDescriptorPoolCreateInfo
Bug 14644 - vkCreateDescriptorPool should have poolUsage/maxSets as part of VkDescriptorPoolCreateInfo
merge request #342
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 21:47:14 +0000 (15:47 -0600)]
bug 14437: Remove VK_PIPELINE_STAGE_TRANSITION_BIT
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 18:59:15 +0000 (12:59 -0600)]
misc: Bump header version
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 18:57:55 +0000 (12:57 -0600)]
shader_checker: Do not hold lock across API call.
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 18:02:52 +0000 (12:02 -0600)]
bug 14564: and initial layout for image creation
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 18:00:18 +0000 (12:00 -0600)]
misc: Add maxVertexInputBindings
Merge request 298.
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 17:51:46 +0000 (11:51 -0600)]
misc: code movement due to header build changes
Courtney Goeltzenleuchter [Wed, 16 Sep 2015 00:03:22 +0000 (18:03 -0600)]
Bug 14643: use VkClearDepthStencilValue
Courtney Goeltzenleuchter [Tue, 15 Sep 2015 00:01:17 +0000 (18:01 -0600)]
bug-14538: Remove validation error codes
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14538
Courtney Goeltzenleuchter [Mon, 14 Sep 2015 23:22:16 +0000 (17:22 -0600)]
bug 14509: Rename Layer and Extension queries
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14509
https://gitlab.khronos.org/vulkan/vulkan/merge_requests/334
Jon Ashburn [Thu, 17 Sep 2015 21:28:12 +0000 (15:28 -0600)]
layers: Move some fixed code into header files for APIDump and Generic
Jon Ashburn [Thu, 17 Sep 2015 16:00:32 +0000 (10:00 -0600)]
layers: Fix intercept of WSI instance entrypoints
ApiDump, Generic, ObjectTracker now intrcept WSI instance entrypoint and
only intercept if the extension is enabled
Jon Ashburn [Thu, 17 Sep 2015 00:08:32 +0000 (18:08 -0600)]
layers: Fix several bugs in WSI extension handling in layers
Layers weren't intercepting the WSI device extensions proerly, or weren't
NOT intercepting them if the extension wasn't enabled. Fixes to APIDump,
Generic, ScreenShot, MemTracker, ObjectTracker
Jon Ashburn [Wed, 16 Sep 2015 23:27:31 +0000 (17:27 -0600)]
layers: No assert on init instance table map.size != 1
Instance table map can have more than one entry if multiple instances.
Jon Ashburn [Tue, 15 Sep 2015 22:59:18 +0000 (16:59 -0600)]
layers: Remove the DEBUG_REPORT entrypoints from device dispatch structure.
these entrypoints are instance level.
Jon Ashburn [Tue, 15 Sep 2015 19:37:52 +0000 (13:37 -0600)]
loader: Remove windows disable of global optimization.
Now that vktrace now longer uses mhook, can reenable global optimize on Windows.
Tobin Ehlis [Wed, 16 Sep 2015 16:33:53 +0000 (10:33 -0600)]
layers: Update DrawState to handle creation of multiple gfx pipelines
Mark Lobodzinski [Tue, 15 Sep 2015 22:10:17 +0000 (16:10 -0600)]
layers: Various memtracker TODOs, fixed some error messages
Tobin Ehlis [Thu, 17 Sep 2015 15:15:21 +0000 (09:15 -0600)]
layers: Update vk_layer_settings.txt to clarify CALLBACK option and change DebugAction for all layers to "LOG_MSG"
Tobin Ehlis [Tue, 15 Sep 2015 21:02:17 +0000 (15:02 -0600)]
layers: Improve invalid object checks of ObjectTracker
ObjectTracker now correctly stores queried PhysicalDevice and Queue information and validates that these objects are correct whenever passed in as params. Now handling arrays of Objects passed into API functions as parameters. Removed special exceptions for VkFence, VkDeviceMemory, and VkImage types that were causing them to skip some checks.
Moved a few validation tests that had been under MemTracker into ObjectTracker as it now catches the invalid VkImage and VkDeviceMemory cases. Updated master document to reflect this.
Tony Barbour [Wed, 16 Sep 2015 21:01:32 +0000 (15:01 -0600)]
demos: trivial fixes for cube problems
Courtney Goeltzenleuchter [Fri, 7 Aug 2015 15:53:18 +0000 (09:53 -0600)]
loader: Need to init instance dispatch without layers
Application that enabled DEBUG_REPORT but did not register
any layers would get into a deadlock due to improperly
initialized instance dispatch table.
Cody Northrop [Wed, 16 Sep 2015 14:35:29 +0000 (08:35 -0600)]
layers: Add return value to non-void function
Tobin Ehlis [Mon, 14 Sep 2015 19:25:57 +0000 (13:25 -0600)]
layers: Migrate Fence checks from ObjectTracker to MemTracker
Tobin Ehlis [Tue, 15 Sep 2015 15:54:07 +0000 (09:54 -0600)]
layers: Example vk_layer_settings.txt file
Tobin Ehlis [Tue, 15 Sep 2015 15:55:54 +0000 (09:55 -0600)]
layers: Fix layer STDOUT logging
Mark Lobodzinski [Mon, 14 Sep 2015 23:43:42 +0000 (17:43 -0600)]
layers: Migrate MemTracker to allow log_msg callback to signal early return
Cody Northrop [Mon, 14 Sep 2015 19:48:12 +0000 (13:48 -0600)]
demos/tests: Fix aspectMask updates in a few spots
Ian Elliott [Tue, 15 Sep 2015 18:14:41 +0000 (12:14 -0600)]
layers: Another CreateDevice fix (was using WSI instance extension name)