Jon Ashburn [Tue, 30 Jun 2015 22:44:28 +0000 (16:44 -0600)]
loader: Remove uneeded ICD and layers scanned boolean
Artifact of when layers and ICDs weren't scanned initially.
Jon Ashburn [Tue, 30 Jun 2015 21:46:22 +0000 (14:46 -0700)]
loader: Support gettting JSON ICD manifest files from registry
Windows now supports the JSON manifest file for ICDs
Jon Ashburn [Tue, 30 Jun 2015 21:44:13 +0000 (14:44 -0700)]
loader: Fix compilation warnings for debug_report on Windows
Jon Ashburn [Mon, 29 Jun 2015 23:51:36 +0000 (17:51 -0600)]
loader: Add math library to the build for linux cJSON files
Jon Ashburn [Mon, 29 Jun 2015 17:25:34 +0000 (11:25 -0600)]
loader: Add parsing of JSON file to find location of ICD libraries
Works on Linux not yet on Windows.
Tony Barbour [Tue, 30 Jun 2015 20:14:19 +0000 (14:14 -0600)]
cube: fix validation and clean up errors
David Pinedo [Tue, 30 Jun 2015 19:08:37 +0000 (13:08 -0600)]
Layers: Fix screenshot seg fault, changed accesses to dispatch tbl
Mark Lobodzinski [Tue, 30 Jun 2015 16:18:36 +0000 (10:18 -0600)]
demos: Ensure VertexInputState is NULL if unused
Was passing in pointer to a null VertexInputState structure, but
driver needs null pointer if structure unused.
Courtney Goeltzenleuchter [Mon, 29 Jun 2015 23:38:51 +0000 (17:38 -0600)]
Revert "loader: Remove CreateDevice from loader's instance"
This reverts commit
b81161d0fa45c3b1333d8954220c992c5eb8aac4.
Change did not match commit message.
Courtney Goeltzenleuchter [Mon, 29 Jun 2015 22:09:23 +0000 (16:09 -0600)]
loader: Need to use ICD's GetDeviceProcAddr
The loader_GetDeviceProcAddr is the terminator
for the CreateDevice chain. It needs to call the ICD's
GetDeviceProcAddr to get the correct function pointer
not the object's current dispatch table that points
at the beginning of the chain.
Saw issue when running cube with only DRAW_STATE layer
enabled.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 00:01:43 +0000 (18:01 -0600)]
loader: Remove CreateDevice from loader's instance
Need to remove the CreateDevice function pointer from the
loader's instance table.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 00:01:43 +0000 (18:01 -0600)]
loader: Move CreateDevice to device table
Discovered an issue where a layer was doing cleanup
in it's DestroyDevice function but the CreateDevice
was never called.
This happened because the extension was only enabled
on the device chain and the device chain doesn't actually
call CreateDevice. That happens on the Instance chain.
Making it so that we can call down the device chain -
which is terminated by the ICD.
We need to know the real device object to construct the
device chain heiarchy and when calling down the device
chain it should end with the ICD doing the actual device
object creation.
This patch fixes the issue by using the
same process as CreateInstance. The loader will call
the ICD's CreateDevice and pass that in the *pDevice
argument. The layers then ignore the PhysicalDevice parameter
and use the *pDevice to access the device chain.
To prevent the ICD from being called twice needed to
stub in a special loader_GetDeviceChainProcAddr to provide
a stub for only CreateDevice as the end of the chain.
integrate review feedback.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 22:43:44 +0000 (16:43 -0600)]
layers: Do not advertise support for WSI
Layers that do not implement WSI features yet can 'trace'
WSI calls do not need to advertise WSI as an extension.
Any WSI calls made will land in the layer if it hooks
those calls. Otherwise should not care about WSI.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 21:14:50 +0000 (15:14 -0600)]
layers: Abort logging if null debug_report ptr
If a layer were to only be enabled on the device chain
it would not have had a chance to allocate a debug_report
data structure. Just treat such cases as having debug_report
disabled.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 21:11:45 +0000 (15:11 -0600)]
layers: Remove unneeded asserts
We'll soon break the rule being asserted, so remove
them.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 21:07:53 +0000 (15:07 -0600)]
generator: Add more debug statements
The location comments in the generated code help
a lot in determining what part of the generator generates
what code.
Courtney Goeltzenleuchter [Fri, 26 Jun 2015 21:05:29 +0000 (15:05 -0600)]
generator: Clear dispatch table
Finding entries that are not filled in properly is easier
if the table is initialized to zeros.
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 22:27:24 +0000 (16:27 -0600)]
loader: Need to search device extension cache
Code was searching global extension cache for
extensions enabled at CreateDevice time. List are similar
but not identical and cause vulkaninfo to hit a segfault.
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 22:26:55 +0000 (16:26 -0600)]
loader: Add debug info
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 22:24:57 +0000 (16:24 -0600)]
vulkaninfo: Use app's extension count, not system
Was telling the driver to enable more extensions than
intended.
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 22:24:36 +0000 (16:24 -0600)]
vulkaninfo: handy debug output
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 22:23:45 +0000 (16:23 -0600)]
vulkaninfo: Need WSI extension for some queries
Tony Barbour [Thu, 25 Jun 2015 22:56:44 +0000 (16:56 -0600)]
vulkan.h: V110 #13864 -- Border Color Values Underspecified
Tobin Ehlis [Thu, 25 Jun 2015 18:29:25 +0000 (12:29 -0600)]
layers: ObjectTracker cleanup
Removed some unused error codes.
Updated INVALID_OBJECT error to correctly be flagged.
Tony Barbour [Fri, 26 Jun 2015 21:02:35 +0000 (15:02 -0600)]
vulkan.h: Bug 14171 - remove unused structure type enums
Tony Barbour [Fri, 26 Jun 2015 20:32:15 +0000 (14:32 -0600)]
vulkan.h: Bug 14153 - remove maxInlineMemoryUpdateSize
Tony Barbour [Fri, 26 Jun 2015 19:28:56 +0000 (13:28 -0600)]
vulkan.h: Bug 14136 - reorder logicop enums
Tony Barbour [Fri, 26 Jun 2015 18:56:09 +0000 (12:56 -0600)]
vulkan.h: Bug 13900 - Remove initialCount from semaphores
Jeremy Hayes [Fri, 26 Jun 2015 18:48:09 +0000 (12:48 -0600)]
layers: Use new param checker layer.
Tony Barbour [Fri, 26 Jun 2015 16:18:34 +0000 (10:18 -0600)]
vulkan.h: Bug 13616 Clarification of types of sample counts
Tony Barbour [Fri, 26 Jun 2015 15:43:05 +0000 (09:43 -0600)]
vulkan.h: Bug 13939 Remove references to depth/stencil resolve
Tobin Ehlis [Tue, 23 Jun 2015 22:13:03 +0000 (16:13 -0600)]
layers: Flag DrawState INVALID_RENDERPASS error if NULL RenderPass used to Begin/End/Continue a RenderPass
Tobin Ehlis [Wed, 24 Jun 2015 23:27:33 +0000 (17:27 -0600)]
layers: Warn in DrawState if DescriptorSet bound that was never updated.
Tobin Ehlis [Wed, 24 Jun 2015 21:53:07 +0000 (15:53 -0600)]
layers: In DrawState, validate correct use of RenderPass
This change validates certain API calls are made inside of or outside of a RenderPass as appropriate. Exact restrictions included in this changelist are included below.
Also fixed cube and tri demos to Bind Pipeline & DescriptorSets within RenderPass and updated some layer validation tests.
The following calls must be within RenderPass:
vkCmdBindPipeline() w/ GFX pipelineBindPoint
vkCmdBindDescriptorSets() w/ GFX pipelineBindPoint
vkCmdBindDynamicStateObject()
vkCmdBindIndexBuffer()
vkCmdBindVertexBuffers()
vkCmdEndRenderPass()
The following calls must be outside of RenderPass:
vkCmdBindPipeline() w/ COMPUTE pipelineBindPoint
vkCmdBindDescriptorSets() w/ COMPUTE pipelineBindPoint
vkCmdBlitImage()
vkCmdResolveImage()
vkCmdBeginRenderPass()
Tobin Ehlis [Tue, 23 Jun 2015 17:22:55 +0000 (11:22 -0600)]
layers: Add DrawState check to verify Draw* cmds only issued within RenderPass
Tobin Ehlis [Mon, 22 Jun 2015 23:20:50 +0000 (17:20 -0600)]
layers: Add DrawState check to verify that Pipeline layout from vkCmdBindDescriptorSets() matches layout from PSO at Draw time.
Also fix a bug where PSO status flags were not getting set into Cmd Buffer.
Tobin Ehlis [Tue, 23 Jun 2015 22:13:03 +0000 (16:13 -0600)]
layers: Flag DrawState INVALID_RENDERPASS error if NULL RenderPass used to Begin/End/Continue a RenderPass
Tony Barbour [Thu, 25 Jun 2015 21:41:47 +0000 (15:41 -0600)]
vulkan.h: V109 -- Remove minLod from VkImageViewCreateInfo
Tony Barbour [Wed, 24 Jun 2015 22:06:58 +0000 (16:06 -0600)]
vulkan.h: V108 -- Static Types, Bug# 13919
Tobin Ehlis [Tue, 23 Jun 2015 16:52:08 +0000 (10:52 -0600)]
layers: Correctly set Object Type for Dynamic State when flagging error
Tobin Ehlis [Tue, 23 Jun 2015 16:41:13 +0000 (10:41 -0600)]
layers: Report error in DrawState if vkCmdBlitImage() called during RenderPass.
Tobin Ehlis [Tue, 23 Jun 2015 14:46:18 +0000 (08:46 -0600)]
layers: Added DrawState check to flag error if compute pipeline bound during RenderPass
Courtney Goeltzenleuchter [Fri, 19 Jun 2015 03:49:59 +0000 (21:49 -0600)]
Bug 14014: Allow multiple entrypoints in modules
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14014
Header and minimal code changes to include support for
multiple entrypoints in a shader module.
Driver implementation TBD.
Courtney Goeltzenleuchter [Thu, 18 Jun 2015 23:28:20 +0000 (17:28 -0600)]
bug 14016: Make vkResetFences take const pFences
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14016
Courtney Goeltzenleuchter [Wed, 24 Jun 2015 20:58:38 +0000 (14:58 -0600)]
screenshot: remove unneeded initialization code
The device dispatch is setup in GetDeviceProcAddr, don't
need to do it in layer's CreateDevice.
Courtney Goeltzenleuchter [Tue, 23 Jun 2015 14:50:57 +0000 (08:50 -0600)]
screenshot: Need to wrap more functions
Need to include CreateInstance, DestroyInstance
and CreateDevice in screenshot's GetInstanceProcAddr
otherwise cannot process setup correctly.
Courtney Goeltzenleuchter [Tue, 23 Jun 2015 14:50:27 +0000 (08:50 -0600)]
screenshot: Need a DestroyInstance
Need way to clean up resources allocated at CreateInstance.
Courtney Goeltzenleuchter [Mon, 22 Jun 2015 23:45:21 +0000 (17:45 -0600)]
loader: Use loader_GetInstanceProcAddr
By using the vkGetInstanceProcAddr function in the loader's
instance dispatch table we will trace that function
during initialization of layers. Don't want to do that so
call loader internal function.
Courtney Goeltzenleuchter [Mon, 22 Jun 2015 22:19:14 +0000 (16:19 -0600)]
image: Need to get layer_data from correct place
Courtney Goeltzenleuchter [Mon, 22 Jun 2015 21:22:51 +0000 (15:22 -0600)]
vulkan: remove unused error code
Chris Forbes [Sun, 21 Jun 2015 10:55:02 +0000 (22:55 +1200)]
vulkan.h: Remove vkGetFormatInfo, add features/limits (#12827, v125)
NOTES:
1/ Some layers impact from vkGetFormatInfo ->
vkGetPhysicalDeviceFormatInfo; some checks are currently disabled in
ParamChecker pending discussion on the best way to do this. Similar
checks in Image layer implemented via additional layer_data member
to link back from VkDevice -> VkPhysicalDevice.
2/ VkPhysicalDeviceFeatures, VkPhysicalDeviceLimits members all zero
for now; also some further churn to be done to the contents of these
structures.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Courtney Goeltzenleuchter [Thu, 18 Jun 2015 23:01:41 +0000 (17:01 -0600)]
bug 13038: Remove support for multiple GPUs
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=13038
David Pinedo [Wed, 24 Jun 2015 21:29:18 +0000 (15:29 -0600)]
loader: Add {}'s so that loader compilers on Windows
Tobin Ehlis [Mon, 22 Jun 2015 23:20:50 +0000 (17:20 -0600)]
layers: Add DrawState check to verify that Pipeline layout from vkCmdBindDescriptorSets() matches layout from PSO at Draw time.
Also fix a bug where PSO status flags were not getting set into Cmd Buffer.
Mark Lobodzinski [Tue, 23 Jun 2015 21:11:57 +0000 (15:11 -0600)]
vulkan.h: V104 -- Unify compute/graphics pipeline shader passing semantics, Bug# 13800
Mark Lobodzinski [Tue, 23 Jun 2015 17:35:12 +0000 (11:35 -0600)]
layers: ObjectTracker per-instance storage, updated logging
o Moved non-generated code into object_track.h header file
o Added support for per-instance storage
o Updated for new debug logging mechanism/callbacks
Tobin Ehlis [Tue, 23 Jun 2015 00:00:14 +0000 (18:00 -0600)]
layers: Fix DrawState compile fail
Missed adding in layout when resolving merge conflict.
Tobin Ehlis [Fri, 19 Jun 2015 21:07:05 +0000 (15:07 -0600)]
layers: Add DrawState check to verify Idx buffer bound before an Indexed Draw
Also some minor formatting clean-up to reduce lines of code
Tobin Ehlis [Fri, 19 Jun 2015 19:00:59 +0000 (13:00 -0600)]
layers: Add DrawState check to verify BeginCommandBuffer was called before updating or ending a Cmd Buffer
Also migrated code to set Dynamic State back into CmdBindDynamicState function since that's the only call to set Dynamic State.
Ian Elliott [Mon, 22 Jun 2015 21:07:49 +0000 (15:07 -0600)]
tri/cube: Convert GPA usage/error-checking/reporting to a macro.
Ian Elliott [Mon, 22 Jun 2015 20:30:28 +0000 (14:30 -0600)]
tri: Change to vkGetDeviceProcAddr() for WSI functions.
Mark Lobodzinski [Mon, 15 Jun 2015 19:21:21 +0000 (13:21 -0600)]
vulkan.h: V103 -- Add VkPipelineLayout to vkCmdBindDescriptorSets, Bug# 14047
Tobin Ehlis [Fri, 12 Jun 2015 18:49:01 +0000 (12:49 -0600)]
layers: Addition of source_line_info.py script to simplify codegen debugging
vk-layer-generate.py and vk_helper.py now use added source_line_info.py script to insert comments throughout generated code indicating where the code was generated from.
David Pinedo [Fri, 19 Jun 2015 19:48:18 +0000 (13:48 -0600)]
Layers: Correctly handle WSI_LUNARG extension.
Other code cleanup.
Jon Ashburn [Fri, 19 Jun 2015 18:02:24 +0000 (12:02 -0600)]
MemTracker: Advertise WSI_LUNARG extension in GetPhysDevExtInfo
Jeremy Hayes [Fri, 19 Jun 2015 17:37:38 +0000 (11:37 -0600)]
layers: Erase proper key in draw state.
Jeremy Hayes [Fri, 19 Jun 2015 16:57:11 +0000 (10:57 -0600)]
layers: Fix iterator comparison.
Jeremy Hayes [Thu, 18 Jun 2015 16:12:39 +0000 (10:12 -0600)]
layers: Move image validation to separate layer.
Jeremy Hayes [Thu, 18 Jun 2015 16:25:55 +0000 (10:25 -0600)]
layers: Comment for newbies.
Jon Ashburn [Thu, 18 Jun 2015 23:12:57 +0000 (17:12 -0600)]
MemTracker: make sure get_mem_binding_from_object uses dispatchable object
Tobin Ehlis [Thu, 18 Jun 2015 21:59:33 +0000 (15:59 -0600)]
layers: Add DrawState check for Invalid PSO CreateInfo state
Report any violations in PSO restrictions as DRAWSTATE_INVALID_PIPELINE_CREATE_STATE error and don't call into driver.
Also fix a couple of broken error calls that had NULL dispatchable object parameter.
Tobin Ehlis [Thu, 18 Jun 2015 17:02:59 +0000 (11:02 -0600)]
layers: Add active_shaders flag to Pipeline node struct in DrawState
David Pinedo [Thu, 18 Jun 2015 23:03:14 +0000 (17:03 -0600)]
Layers: ported to screenshot layer to master
Tony Barbour [Thu, 18 Jun 2015 22:29:32 +0000 (16:29 -0600)]
Windows: Fix build issues on Windows
Generate vulkan.def from header, fix use of alloca
Jeremy Hayes [Thu, 18 Jun 2015 16:11:03 +0000 (10:11 -0600)]
layers: Remove dead code.
Jeremy Hayes [Thu, 18 Jun 2015 22:21:56 +0000 (16:21 -0600)]
demos: Fix output location in tri.vert.
Jon Ashburn [Thu, 18 Jun 2015 21:02:58 +0000 (15:02 -0600)]
layers: Make WSI_LUNARG a device extension and check if enabled before use
Return NULL GetProcAddr if not enabled. Also fix DEBUG_MARKER bugs
in DrawState and ParamChecker
Also advertise WSI_LUNARG as a device extension in layers where it is used.
Jon Ashburn [Thu, 18 Jun 2015 15:05:37 +0000 (09:05 -0600)]
loader: Remove support for WSI as an instance extension
WSI is now a device extension so remove loader support
Cody Northrop [Thu, 18 Jun 2015 21:38:21 +0000 (15:38 -0600)]
demos: Add missing spv dependency for cube
Tobin Ehlis [Tue, 16 Jun 2015 21:50:44 +0000 (15:50 -0600)]
layers: Migrate draw_state.cpp to use log_msg utility for dbg reporting
Unified all reporting of INVALID_CMD_BUFFER messages under the getCBNode() function which eliminated lots of duplicate code.
Tobin Ehlis [Tue, 16 Jun 2015 15:04:30 +0000 (09:04 -0600)]
layers: Update DrawState intercept of Create/Destroy MsgCallback
Jon Ashburn [Tue, 16 Jun 2015 21:06:44 +0000 (15:06 -0600)]
misc: Remove VK_PHYSICAL_DEVICE_INFO_TYPE_DISPLAY_PROPERTIES_WSI
This is only used for getting display object which is no longer needed
since the GetDisplayInfoWSI() functions is removed
Jon Ashburn [Tue, 16 Jun 2015 18:44:51 +0000 (12:44 -0600)]
misc: Remove GetDisplayInfoWSI()
This entry point was a challenge for loader to handle correctly. Since it is
going away in the new WSI proposal remove it in all components.
Jon Ashburn [Tue, 16 Jun 2015 20:43:19 +0000 (14:43 -0600)]
loader: Fix memory free bug in destroying icd from DestroyInstance
Courtney Goeltzenleuchter [Tue, 16 Jun 2015 23:01:30 +0000 (17:01 -0600)]
layers: Add linefeed after log message
Courtney Goeltzenleuchter [Tue, 16 Jun 2015 22:58:52 +0000 (16:58 -0600)]
mem_tracker: Cannot get dispatch key after destroy
get_dispatch_key looks for the dispatch table pointer at
the beginning of the object. Once it's destroy that value
isn't available so grab the key before it's destroyed.
Mark Lobodzinski [Fri, 12 Jun 2015 17:14:17 +0000 (11:14 -0600)]
vulkan.h: V102 -- Rename min/maxDepth for DepthStencil, Bug# 13917
Renamed depth-stencil minDepth and maxDepth to minDepthBounds and
maxDepthBounds.
Mark Lobodzinski [Fri, 12 Jun 2015 16:57:53 +0000 (10:57 -0600)]
vulkan.h: V101 -- Remove programPointSize, Bug# 13928
Mark Lobodzinski [Thu, 11 Jun 2015 22:41:29 +0000 (16:41 -0600)]
vulkan.h: V100 -- Remove vkClearDescriptorSets, Bug# 13783
Conflicts:
layers/draw_state.cpp
Mark Lobodzinski [Thu, 11 Jun 2015 22:23:27 +0000 (16:23 -0600)]
vulkan.h: V99 -- Remove fixed-function point parameters, Bug# 13928
Remove pointSize and pointFadeThreshold from VkDynamicRsStateCreateInfo.
Mark Lobodzinski [Tue, 16 Jun 2015 20:00:19 +0000 (14:00 -0600)]
vulkan.h: V99 -- Remove vkPinSystemMemory, Bug# 13926
Mark Lobodzinski [Thu, 11 Jun 2015 20:37:55 +0000 (15:37 -0500)]
vulkan.h: V99 -- Remove vkSetMemoryPriority, Bug# 13925
Conflicts:
layers/mem_tracker.cpp
Jon Ashburn [Mon, 15 Jun 2015 22:08:39 +0000 (16:08 -0600)]
layers: Report DEBUG_MARKER as supported in ParamChecker and DrawState
Jon Ashburn [Mon, 15 Jun 2015 18:21:02 +0000 (12:21 -0600)]
layers: Add GetPhysicalDeviceExtInfo to DrawState
Allows DrawState to be enabled in layers_validation_test
Jon Ashburn [Mon, 15 Jun 2015 16:58:28 +0000 (10:58 -0600)]
DrawState: Fix destroying of maps so the map entrys get removed
They were hanging around and causing double delete assertions.
Jon Ashburn [Mon, 15 Jun 2015 15:30:12 +0000 (09:30 -0600)]
tests: Remove the enablement of the "Validation" extension
This accidentally got added resulting in validation layers always running.
Courtney Goeltzenleuchter [Mon, 15 Jun 2015 03:32:01 +0000 (21:32 -0600)]
WIP: Debugging - REMOVE
Courtney Goeltzenleuchter [Mon, 15 Jun 2015 01:57:15 +0000 (19:57 -0600)]
loader: Grab next before destroying the data
Mark Lobodzinski [Thu, 11 Jun 2015 21:11:20 +0000 (16:11 -0500)]
layers: Fix memtracker segfault for ill-behaved apps
Freeing object memory before destroying object resulted in a segfault.
This is illegal but shouldn't crash the layer.
Jon Ashburn [Wed, 10 Jun 2015 22:43:31 +0000 (16:43 -0600)]
shaderChecker: Add GetPhysDevExtInfo and fix CreateInstance