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
Jon Ashburn [Wed, 10 Jun 2015 22:11:42 +0000 (16:11 -0600)]
loader: Support multiple layers in one library by using <layerName>GetProcAddr
Get*ExtensionInfo string was being used to see if layer extensions are aliases.
Change this over to Get*ProcAddr pointer since that will be different in
libraries that have multiple layers/ICDs in them.
Conflicts:
loader/loader.c
Jon Ashburn [Wed, 10 Jun 2015 16:13:10 +0000 (10:13 -0600)]
loader: Remove the test for device layers activated; they follow create/destroy
Jon Ashburn [Wed, 10 Jun 2015 16:06:06 +0000 (10:06 -0600)]
loader: Add device struct so can destroy layer info at DestroyDevice
This also allows multiple logical devices per icd/gpu combo. Old code
conflated a icd/gpu combo with a logical device
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:37:01 +0000 (11:37 -0600)]
mem_tracker: Process config file debug actions
Now that debug report functionality is in place can use
that mechanism to handle logging enabled by vk_layer_settings.txt
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:35:37 +0000 (11:35 -0600)]
layers: Remove callback as runtime action
Doesn't make sense to have a callback action to
a config file setting, so remove that option.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:34:49 +0000 (11:34 -0600)]
layers: Add config parser to compute debug flags
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:33:06 +0000 (11:33 -0600)]
layers: Move dbg flag print to config header
The print function seems to go better here with the
config file parsing as they use similar values.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:29:24 +0000 (11:29 -0600)]
layers: Add logging callback function for layers
Now that new debug report mechanism is in place, need
a callback function to output a log message.
Can then have layers register callback with debug_report
to have messages sent to stdout / FILE as well as
whatever the application asked for.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:28:24 +0000 (11:28 -0600)]
layers: Set helpers as static inline
static inline allows the code to be unused
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 15:50:18 +0000 (09:50 -0600)]
layers: make log_msg format log strings for perf
Performance analysis showed a lot of time being spent
formating unused log messages (particularly INFO). By
moving the formatting into the logging function we can
only do the formatting if the message will be used.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:48:26 +0000 (21:48 -0600)]
layers: Ifdef out debug code
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:40:22 +0000 (21:40 -0600)]
mem_tracker: Add some more debug code
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:39:35 +0000 (21:39 -0600)]
mem_tracker: Use dispatch access functions
Hopefully makes code easier to read when using the
dispatch table access functions.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:37:34 +0000 (21:37 -0600)]
mem_tracker: Need dispatch object for logging
Needed to make sure we had a dispatchable object to
perform logging. Can't trust that mem or object are
correct, so have caller pass in user's dispatchable object.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:36:49 +0000 (21:36 -0600)]
mem_tracker: Add debug asserts
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:29:26 +0000 (21:29 -0600)]
mem_tracker: Initialize new mem record
Need to intialize the record put on the list.
Removed the unused, newed record.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:23:09 +0000 (21:23 -0600)]
draw_state: Update to use private dispatch map
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:22:12 +0000 (21:22 -0600)]
layers: Use static dispatch table maps
Changes to use dispatch table access functions.
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 03:18:30 +0000 (21:18 -0600)]
layers: utilities for layer storage
Have defined tableMap and tableInstanceMap as
static here to prevent layers from accidentally using
a common map. Moved all the access functions here as well
to be able to access the static maps.
Added destroy functions to eliminate last of references
to tableMap and tableInstanceMap maps outside this file.
Courtney Goeltzenleuchter [Sat, 13 Jun 2015 17:18:17 +0000 (11:18 -0600)]
layers: per-instance data helpers
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 18:03:26 +0000 (12:03 -0600)]
mem_tracker: add per-instance persistent data
Courtney Goeltzenleuchter [Sun, 14 Jun 2015 17:59:07 +0000 (11:59 -0600)]
loader: Set some log messages as debug messages
Courtney Goeltzenleuchter [Thu, 11 Jun 2015 22:01:11 +0000 (16:01 -0600)]
memtracker: Add persistent storage
This patch eliminates global variables and accesses
everything through pre-instance or per-device storage.
Have basic template supporting get_my_data_ptr function working.
Courtney Goeltzenleuchter [Thu, 11 Jun 2015 21:58:51 +0000 (15:58 -0600)]
debug_report: Utilities for layers to use
This header is intended to be used by all validation
layers and provides the necessary functions to process
DEBUG_REPORT messages and generate callbacks.
This is intended for layers implementing per instance / device
storage.
Courtney Goeltzenleuchter [Thu, 11 Jun 2015 21:56:14 +0000 (15:56 -0600)]
debug_report: Add error codes
Add error codes for messages the debug report layer
can generate.
Jon Ashburn [Tue, 9 Jun 2015 17:27:20 +0000 (11:27 -0600)]
loader: Fix device layer activation to properly filter out repeat layers
Jon Ashburn [Mon, 8 Jun 2015 22:38:48 +0000 (16:38 -0600)]
loader: Move device dispatch table to CreateDevice from EnumeratePhysDev
For now just have a static array for these will fix this in later commit
Conflicts:
loader/loader.c
Jon Ashburn [Mon, 8 Jun 2015 20:38:28 +0000 (14:38 -0600)]
loader: Remove GetGlobalExtensionInfo from dispatch table
No way to reliably dispatch this entry point in layers; will not be recursive.
Conflicts:
loader/loader.c
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 15:44:13 +0000 (09:44 -0600)]
loader: Remove linefeed from log messages
The output function already puts in linefeeds.
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 15:42:23 +0000 (09:42 -0600)]
loader: Use type flags not code for filter
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 15:15:40 +0000 (09:15 -0600)]
loader: clean up dead code
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 15:14:48 +0000 (09:14 -0600)]
loader: only search for layers
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 15:08:54 +0000 (09:08 -0600)]
loader: remove now unused hosted field
Courtney Goeltzenleuchter [Tue, 9 Jun 2015 14:45:23 +0000 (08:45 -0600)]
bug-13466: Implement comment #14
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=13466
Jon Ashburn [Thu, 4 Jun 2015 21:30:58 +0000 (15:30 -0600)]
loader: Add error messages if layer libraries fail to load
Jon Ashburn [Mon, 1 Jun 2015 16:02:09 +0000 (10:02 -0600)]
layers: Make dispatch table thread safe
Jon Ashburn [Mon, 1 Jun 2015 15:37:38 +0000 (09:37 -0600)]
layers: Fix DrawState and ParamChecker to only use debug_marker if enabled
Jon Ashburn [Fri, 29 May 2015 19:15:39 +0000 (13:15 -0600)]
loader: Make global functions (instance chain entrypoints) thread safe
Jon Ashburn [Fri, 29 May 2015 15:12:28 +0000 (09:12 -0600)]
layer: Remove EnumerateLayers
Jon Ashburn [Fri, 29 May 2015 01:25:20 +0000 (19:25 -0600)]
loader: Remove storage of wrappedGPUs only need during layer activation
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 21:13:50 +0000 (15:13 -0600)]
loader: add debug log message
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 21:11:18 +0000 (15:11 -0600)]
loader: Add LOADER_DEBUG environment flags
The loader_log function now uses a global flag to
determine which log messages to echo to stderr.
The flags can be set by setting the LOADER_DEBUG
environment variable to colon separate list of
tokens.
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 21:09:22 +0000 (15:09 -0600)]
loader: Fix DestroyInstance
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 21:04:02 +0000 (15:04 -0600)]
loader: Add utility to return loader instance ptr
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 20:58:39 +0000 (14:58 -0600)]
layers: Initialize debug_report instance proc table
Courtney Goeltzenleuchter [Mon, 8 Jun 2015 00:24:30 +0000 (18:24 -0600)]
loader: Increase library name length for safety
Jon Ashburn [Fri, 29 May 2015 01:16:58 +0000 (19:16 -0600)]
loader: Fix EnumeratePhysDev to handle less gpus than icd has and no mem leak
Also no longer wrap gpu objs of inst objs in CreateInstance.
Courtney Goeltzenleuchter [Sun, 7 Jun 2015 23:28:17 +0000 (17:28 -0600)]
loader: Only allow layer in chain once
If an application were to specify a "Validatio" layer
and the environment specified a ParamChecker layer
it was possible to load the same layer twice in
one chain. Layers don't like that can only be referenced
once and that's all they need to support multiple
extensions from the one layer.
This patch adds an alias pointer so that when putting
together the lists of available extensions the loader
can keep track of multiple extensions that are servied
by the same library. Also now create specific
activated_layers_list that contains only the list
of layers that need to be activated.
Courtney Goeltzenleuchter [Sun, 7 Jun 2015 23:27:46 +0000 (17:27 -0600)]
debug_report: Add debug message flag
Courtney Goeltzenleuchter [Sun, 7 Jun 2015 23:27:05 +0000 (17:27 -0600)]
loader: Remove obsolete extension / layer code
Courtney Goeltzenleuchter [Sun, 7 Jun 2015 23:24:20 +0000 (17:24 -0600)]
layer: Generic is not a validation layer
Remove the Validation extension definition for the
generated generic example layer.
Courtney Goeltzenleuchter [Thu, 4 Jun 2015 22:20:06 +0000 (16:20 -0600)]
vulkaninfo: Update to new extension mechanism
Courtney Goeltzenleuchter [Thu, 4 Jun 2015 17:35:43 +0000 (11:35 -0600)]
vulkan: Fix for bug 13785.
Implement proposal in comment #3.
Agreed in June '15 Khronos face-to-face
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 21:10:03 +0000 (15:10 -0600)]
nulldriver: Update to new VkExtensionProperties
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:52:57 +0000 (14:52 -0600)]
layers: Update generator for DEBUG_REPORT
Generated layers that support DEBUG_REPORT
now need to intercept CreateInstance and call the
appropriate DEBUG_REPORT layer helper functions.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:49:17 +0000 (14:49 -0600)]
loader: Fix code format, add some debug info
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:46:33 +0000 (14:46 -0600)]
shader_checker: Use DEBUG_REPORT helper functions
Include and use DEBUG_REPORT layer helper functions
for create, destroy and GetInstanceProcAddr.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:45:27 +0000 (14:45 -0600)]
param_checker: Use DEBUG_REPORT extension helpers
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:43:18 +0000 (14:43 -0600)]
mem_tracker: DEBUG_REPORT handled by helper functions
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:42:43 +0000 (14:42 -0600)]
mem_tracker: DEBUG_REPORT is global, do not use in CreateDevice
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:41:49 +0000 (14:41 -0600)]
mem_tracker: Updates to match latest loader changes
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:34:25 +0000 (14:34 -0600)]
draw_state: Add validation extension record
To make things easier for applications the validation
layers will advertise support for two extensions.
The named extension (i.e. DRAW_STATE) is used if the
app only wants to enable this specific layer / extension.
If an app wants to enable all Validation layers they
simply include all VkExtensionProperties who's name is
"Validation". This patch adds this extension to this
layer.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:33:14 +0000 (14:33 -0600)]
draw_state: Add support for DEBUG_REPORT
DrawState can report errors it details via the
DEBUG_REPORT extension. This patch updates
DrawState so that it uses the DEBUG_REPORT
extension if it is enabled.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:29:58 +0000 (14:29 -0600)]
draw_state: Add CreateInstance support
Layers need to intercept CreateInstance in order
to see what's been enabled on the Instance chain.
As this layer supports DEBUG_REPORT extension it
needs to know if that has been enabled or not.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:25:09 +0000 (14:25 -0600)]
loader: remove dependency fields from extension info
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:12:42 +0000 (14:12 -0600)]
loader: Remove resolved TODOs
Update comments and remove TODOs that are done.
Courtney Goeltzenleuchter [Mon, 1 Jun 2015 20:10:21 +0000 (14:10 -0600)]
loader: Remove unused functions
Now that we are using the full VkExtensionProperties
structure to designate extensions needed new query functions