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.
Courtney Goeltzenleuchter [Tue, 8 Sep 2015 22:57:22 +0000 (16:57 -0600)]
demos: Do not bail on validation error
Courtney Goeltzenleuchter [Fri, 4 Sep 2015 21:03:52 +0000 (15:03 -0600)]
draw_state: Implement bailout case for one test
Proof out the bailout case. Fill in others in following
commit(s)
Courtney Goeltzenleuchter [Fri, 4 Sep 2015 19:52:24 +0000 (13:52 -0600)]
layers: Add bailout flag to debug report callback
Layer validation tests will deliberately induce
errors that the validation layer should catch.
In these cases we don't really want the layer to call
down the chain once it's detected a failure. We can't
know that in the layer so changing the return value
on the callback from void to VkBool32 so that the
callback can indicate if the call should continue
or not. true = bail.
That allows the call chain to execute normally,
not segfault in the driver and allow the test
to clean things up.
Courtney Goeltzenleuchter [Fri, 4 Sep 2015 19:47:07 +0000 (13:47 -0600)]
mem_tracker: validation comment
Courtney Goeltzenleuchter [Fri, 4 Sep 2015 19:39:59 +0000 (13:39 -0600)]
bug-14538: Remove driver validation checks
Marked validation checks done in the driver with
TODOVV. Once we verify the check is covered in a
validation layer we can remove the driver code.
Courtney Goeltzenleuchter [Fri, 4 Sep 2015 19:18:58 +0000 (13:18 -0600)]
layers: Remove unused functions
Cody Northrop [Thu, 10 Sep 2015 15:48:42 +0000 (09:48 -0600)]
layers: Add DeviceLimits json files
Tobin Ehlis [Wed, 9 Sep 2015 21:12:35 +0000 (15:12 -0600)]
layers: In DrawState only validate bound VBO index at the time of Draw
Previously validating this at the time of VBO bound and when PSO bound. This could result in checking against stale state, though, and thereby causing false positives.
Tobin Ehlis [Wed, 9 Sep 2015 19:31:01 +0000 (13:31 -0600)]
layers: DrawState fix to prevent false positives when matching PipelineLayouts
Updated existing check where PipelineLayout found with vkBindDescriptorSets was always checked against PipelineLayout from PSO. Since there are cases when a Draw requires no Descriptors the check was modified for now to only occur when vkCmdBindDescriptorSets has been called. This is still not perfect but will prevent false positives.
Really need to identify when it's valid to not call vkCmdBindDescriptorSets and, if so, don't perform the PipelineLayout match check.
Tobin Ehlis [Mon, 7 Sep 2015 21:16:39 +0000 (15:16 -0600)]
demos: Fix demos to correctly query physicalDevice count
Tobin Ehlis [Tue, 8 Sep 2015 14:59:48 +0000 (08:59 -0600)]
layers: Fix ScreenShot layer to handle EnumeratePhysicalDevices query count case
Tobin Ehlis [Thu, 3 Sep 2015 15:50:06 +0000 (09:50 -0600)]
layers: Initial framework for DeviceLimits layer
This includes many initial entrypoints and setting up function intercepts with only a few actual checks to begin. DeviceLimits layer is intended to capture two broad categories of errors:
1. Incorrect use of APIs to query device capabilities
2. Attempt to use API functionality beyond the capability of the underlying device
DeviceLimits stores its own internal record of underlying device capabilities and flag errors if requests are made beyond those limits.
Initial checks and documentation include verification of EnumeratePhysicalDevices call and some basic queue create/get validation.
Jon Ashburn [Wed, 9 Sep 2015 17:29:24 +0000 (11:29 -0600)]
loader: Use GetProcAddr function names from layer manifest file
No longer assume vkGetInstanceProcAddr or <layerName>GetInstanceProcAddr to find
layer's instance GetProcAddrs. And similiar for device ProcAddr. Instead use
any value specified in manifest file. If none specified in manifest file then
assume vkGetInstanceProcAddr or vkGetDeviceProcAddr.
Cody Northrop [Wed, 9 Sep 2015 16:21:49 +0000 (10:21 -0600)]
demos: Prevent tri rendering during shutdown
Mark Lobodzinski [Mon, 7 Sep 2015 18:56:17 +0000 (12:56 -0600)]
vulkan.h: Refactoring physical device sparse properties and limits, bug# 13139
Part of changes for header revision V161.
Mark Lobodzinski [Thu, 3 Sep 2015 21:21:52 +0000 (15:21 -0600)]
vulkan.h: Add bufferFeatures to VkFormatProperties, bug #14546
David Pinedo [Tue, 8 Sep 2015 17:07:46 +0000 (11:07 -0600)]
Windows build: rename vulkan.0.dll to vulkan-0.dll
Mike Stroyan [Mon, 7 Sep 2015 14:58:10 +0000 (08:58 -0600)]
documentation: Detail DRI3 use on ubuntu 15.04
Updated DRI3 discussion in README.md and BUILD.md.
Jon Ashburn [Fri, 28 Aug 2015 21:58:46 +0000 (14:58 -0700)]
loader: Fix Windows build for alloc stuff
Jon Ashburn [Fri, 28 Aug 2015 21:19:27 +0000 (15:19 -0600)]
loader: make thirdparty code use allocation callbacks
Use TLS to keep instance pointer and use this for cJSON alloc/free
callback.
Jon Ashburn [Fri, 28 Aug 2015 19:48:40 +0000 (13:48 -0600)]
demos: Add allocation callback to tri test CreateInstance
Jon Ashburn [Fri, 28 Aug 2015 19:38:21 +0000 (13:38 -0600)]
loader: Make use of app provided allocation callbacks
Convert all heap allocs/frees to use loader_heap_alloc() or loader_heap_free().
Before CreateInstance this will use malloc/free. At (and after) CreateInstance
alloc callbacks are stored and used for any allocations.
Exceptions are thirdparty code (cJSON and dirent_on_windows) still always use
malloc/free. Plan to address these in later patch if ti makes sense.
Jon Ashburn [Thu, 27 Aug 2015 21:23:52 +0000 (15:23 -0600)]
loader: Add support for realloc using the app allocation callbacks.
Jon Ashburn [Thu, 27 Aug 2015 19:06:58 +0000 (13:06 -0600)]
loader: convert to using loader_stack_alloc for consistency
David Pinedo [Fri, 4 Sep 2015 21:33:22 +0000 (15:33 -0600)]
WSI: Convert from VERSION to REVISION in nulldrv
Ian Elliott [Fri, 4 Sep 2015 20:14:35 +0000 (14:14 -0600)]
All extensions single revision number instead of major.minor.patch
This was decided during the August face-to-face. Originally, the WSI
extensions did it the normal OpenGL way (single revision number), and the debug
extensions did it the new major.minor.patch way. When I tried to convert WSI,
an objection was raised. We decided to go with the OpenGL way.
This commit also changes vulkaninfo to report the single revision number.
This commit also changes the extension "number" assigned to the 2 debug
extensions, basd on a "registration" email that Ian Elliott sent to Jon Leech
on 21 August, 2015. The initial set of "registered" extensions are (with their
numbers):
1.VK_EXT_KHR_swapchain
2.VK_EXT_KHR_device_swapchain
3.VK_EXT_KHR_display
4.VK_EXT_KHR_display_swapchain
5.VK_EXT_LUNARG_debug_report
6.VK_EXT_LUNARG_debug_marker
Ian Elliott [Fri, 4 Sep 2015 20:02:04 +0000 (14:02 -0600)]
WSI: Convert from VERSION to REVISION
Ian Elliott [Fri, 4 Sep 2015 19:57:22 +0000 (13:57 -0600)]
WSI: Update headers for WSI swapchain extensions (versions 51 & 17).