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)
Ian Elliott [Tue, 15 Sep 2015 17:55:46 +0000 (11:55 -0600)]
layers: Check if CreateDevice enabling WSI device extension, not instance
Some of the layers were checking whether VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME
(the WSI instance extension) is in the list of device extensions being enabled.
This is wrong. They should be checking whether
VK_EXT_KHR_DEVICE_SWAPCHAIN_EXTENSION_NAME (the WSI device extension) is in the
list of device extensions being enabled.
David Pinedo [Tue, 15 Sep 2015 16:58:27 +0000 (10:58 -0600)]
vktrace: Really put vktrace_layer.json and vktrace_layer.dll in the correct output dirs
This time for sure!
David Pinedo [Tue, 15 Sep 2015 16:25:09 +0000 (10:25 -0600)]
vktrace: Put vktrace_layer.json and vktrace_layer.dll in the correct output dirs
Courtney Goeltzenleuchter [Mon, 14 Sep 2015 22:36:13 +0000 (16:36 -0600)]
bug-14583: Remove the unneeded vkBufferViewType
No longer have viewType to distinguish the type, so pull
it internal and use for descriptor sets.
Courtney Goeltzenleuchter [Mon, 14 Sep 2015 20:14:21 +0000 (14:14 -0600)]
Bug 14583: Updates based on initial feedback
Courtney Goeltzenleuchter [Fri, 11 Sep 2015 21:29:21 +0000 (15:29 -0600)]
Bug 14583: Remove VkBufferView for UBO/SSBO descriptor types
For descriptor types:
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
No longer need to create a VkBufferView, instead can
put the buffer, offset and range directly into a descriptor.
Many places in the driver assumed it could point to a persistent
buffer view and that is no longer the case. Now cache the
view info rather than a pointer to deal with that.
Courtney Goeltzenleuchter [Fri, 11 Sep 2015 17:47:05 +0000 (11:47 -0600)]
vulkan: Add maxDescriptorSet*BuffersDynamic to limits
Courtney Goeltzenleuchter [Fri, 11 Sep 2015 17:40:48 +0000 (11:40 -0600)]
vulkan: Add missing _BIT to some bitfield enums.
Merge request #290 (https://gitlab.khronos.org/vulkan/vulkan/merge_requests/290)
Courtney Goeltzenleuchter [Fri, 11 Sep 2015 17:31:32 +0000 (11:31 -0600)]
vulkan: Bump version to 166
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 23:58:54 +0000 (17:58 -0600)]
Bug 12998: change ImageSubresourceRange's aspect to aspectMask
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 23:25:42 +0000 (17:25 -0600)]
Bug 12998: change imageAspectMast to aspectMask
change vkCmdClearDepthStencilAttachment imageAspectMast to aspectMask
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 22:41:13 +0000 (16:41 -0600)]
bug 14313: Allow copies to do multi-layer copies
Tobin Ehlis [Fri, 11 Sep 2015 18:57:55 +0000 (12:57 -0600)]
layers: Migrate ObjectTracker to updated Validation error reporting
Mark Lobodzinski [Fri, 11 Sep 2015 21:56:51 +0000 (15:56 -0600)]
layers: Fix spurious WSI memory binding error messages in MemTracker
Bug caused invalid errors in some games.
Tobin Ehlis [Wed, 9 Sep 2015 17:31:10 +0000 (11:31 -0600)]
layers: Migrate DrawState to new error reporting allowing for callback to signal early return
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 23:17:43 +0000 (17:17 -0600)]
Bug 12998: Document required depth formats and layouts in buffer memory
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 23:06:03 +0000 (17:06 -0600)]
bug 14530: Remove IMAGE_CREATE_INVARIANT_DATA_BIT
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 23:00:22 +0000 (17:00 -0600)]
Bug 14587: Rename flags: XXX_CREATE_SPARSE_BIT
XXX_CREATE_SPARSE_BIT --> XXX_CREATE_SPARSE_BINDING_BIT
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 22:38:41 +0000 (16:38 -0600)]
bug 14313: Rename ArraySlice to ArrayLayer
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 22:25:49 +0000 (16:25 -0600)]
Bug 14313: Remove VK_FORMAT_FEATURE_CONVERSION_BIT
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 20:14:11 +0000 (14:14 -0600)]
bug 14516: rename VK_IMAGE_USAGE_DEPTH_STENCIL_BIT
into VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 20:08:50 +0000 (14:08 -0600)]
bug 14541: rename VkTexAddress to VkTexAddressMode
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 19:44:12 +0000 (13:44 -0600)]
bug 14537: Improve VkImageFormatProperties
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 19:28:52 +0000 (13:28 -0600)]
Bug 14537: Improve VkImageFormatProperties
Commit:
e45df2e
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 18:54:32 +0000 (12:54 -0600)]
bug-13139: refactor sparse properties
Mark Lobodzinski [Thu, 10 Sep 2015 14:15:23 +0000 (08:15 -0600)]
layers: Reenable MemTracker reference tracking
Which was disabled during the type-safety dark times.
Courtney Goeltzenleuchter [Thu, 10 Sep 2015 17:23:57 +0000 (11:23 -0600)]
nulldrv: Fix compiler issues
Mark Lobodzinski [Mon, 7 Sep 2015 19:59:43 +0000 (13:59 -0600)]
vulkan.h: Change return types of some functions to void
Functions that should be thought of as "impossible to fail in the face
of valid parameters" have had their return types changed to void.
This includes all of the vkDestroy functions, vkFreeMemory, and vkUnmapMemory.
vkUpdateDescriptorSets is also included, because of the frequency the function
is expected to be called.
Courtney Goeltzenleuchter [Tue, 8 Sep 2015 23:42:57 +0000 (17:42 -0600)]
layers: Add note about vkCreateDevice behavior
Courtney Goeltzenleuchter [Tue, 8 Sep 2015 23:27:30 +0000 (17:27 -0600)]
vulkan: Add validation error result
When running with validation layers a validation layer
may abort an API call (due to app callback indicating so).
Since there are no validation error codes in vulkan.h
we need to define one here to return for such cases.
Details of the validation failure are available via the
DEBUG_REPORT callback.