Ian Elliott [Wed, 8 Jul 2015 19:24:30 +0000 (13:24 -0600)]
nulldrv: Get compiling and linking on Windows
Jon Ashburn [Tue, 7 Jul 2015 21:21:07 +0000 (15:21 -0600)]
layers: Fix makefile to look for <layerName>.json instead of <layerName>_config
Jon Ashburn [Tue, 7 Jul 2015 21:10:15 +0000 (15:10 -0600)]
layers: Change JSON files to use relative path for shared libraries
Jon Ashburn [Tue, 7 Jul 2015 21:06:25 +0000 (15:06 -0600)]
loader: Handle relative and filename paths in the layer manifest files
Jon Ashburn [Tue, 7 Jul 2015 20:51:57 +0000 (14:51 -0600)]
layers: Rename JSON files to <layer_name>.json
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 20:27:31 +0000 (14:27 -0600)]
layers: Copy json config files to build directory
JSON library_path field should contain relative
path to the layer library. Easiest if both json and
library file live in the same spot.
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 23:51:45 +0000 (17:51 -0600)]
layers: Generic- update extension and layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 17:25:43 +0000 (11:25 -0600)]
ScreenShot: Update extension and layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 17:18:30 +0000 (11:18 -0600)]
layers: Image- Update extension and layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 17:02:42 +0000 (11:02 -0600)]
ParamChecker: Update extension and layer mechanism.
Jon Ashburn [Tue, 7 Jul 2015 16:27:45 +0000 (10:27 -0600)]
loader: Fix so device layers to enable are from global list of type device
Jon Ashburn [Mon, 6 Jul 2015 21:40:35 +0000 (15:40 -0600)]
loader: Use layer manifest files to discovery and query layers
Conflicts:
layers/CMakeLists.txt
loader/loader.c
Jon Ashburn [Mon, 6 Jul 2015 21:09:36 +0000 (15:09 -0600)]
Screenshot: Make this a device layer only, no instance intercept
Jon Ashburn [Mon, 6 Jul 2015 20:17:01 +0000 (14:17 -0600)]
DrawState: Remove the DOT file dumping and GraphViz stuff
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 16:05:05 +0000 (10:05 -0600)]
shader_checker: Update extension & layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 16:04:16 +0000 (10:04 -0600)]
mem_tracker: Use ARRAY_SIZE macro
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 04:31:52 +0000 (22:31 -0600)]
drawstate: Update extension and layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 04:30:28 +0000 (22:30 -0600)]
layers: Remove object tracker extensions
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 04:29:41 +0000 (22:29 -0600)]
layers: Add handy ARRAY_SIZE macro
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 04:28:18 +0000 (22:28 -0600)]
loader: early exit if nothing to do.
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 03:32:03 +0000 (21:32 -0600)]
Multi: Update to latest extension & layer support
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 03:29:58 +0000 (21:29 -0600)]
apidump: Correct layer property description
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 03:27:39 +0000 (21:27 -0600)]
loader: collect layer properties regardless of extension
Do not terminate the collection of layer properties from
a layer that does not define vkGetPhysicalDeviceExtensionProperties.
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 02:46:50 +0000 (20:46 -0600)]
loader: Filter extensions for ICD's CreateDevice
Courtney Goeltzenleuchter [Tue, 7 Jul 2015 02:14:18 +0000 (20:14 -0600)]
loader: Add validation checks to CreateDevice
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 23:46:11 +0000 (17:46 -0600)]
cube: explicitly specify validation layers
With the changes to extensions & layers we now need
to call them out explicitly rather than use generic
'Validation' name.
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 23:45:08 +0000 (17:45 -0600)]
loader: Validate global layers requested by app
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 23:42:01 +0000 (17:42 -0600)]
loader: Filter extension list sent to ICD
The loader needs to filter the ppEnabledExtensionNames list
to only those supported by the ICD to prevent false failures.
(i.e. extensions bound for layers rather than the ICD.)
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 20:59:20 +0000 (14:59 -0600)]
TODO: Add reminder for new code
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 15:11:12 +0000 (09:11 -0600)]
layers: Update generator for threading, objtrack
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 15:08:37 +0000 (09:08 -0600)]
loader: Use app's alloc routines if available
Switch some of the allocations over to the app's
allocation callbacks. More to come.
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 15:06:34 +0000 (09:06 -0600)]
loader: Add error return to detect invalid layers
The code already checks that a named layer can be
found on the system, but that result was not being
returned to the caller. That is now plumbed so that
CreateInstance and CreateDevice can return an
VK_ERROR_INVALID_LAYER if a named layer cannot be
found.
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 15:04:55 +0000 (09:04 -0600)]
loader: Use stack allocation for temp storage
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 15:03:58 +0000 (09:03 -0600)]
loader: remove redundant log message
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 04:13:43 +0000 (22:13 -0600)]
object_track: Update extension & layer support
Move wsi enable into layer_data structure.
Add objtrack_extensions_enable to layer_data as
well to keep track if that extension has been
enabled or not.
Various updates to match latest layer & extension
proposal.
Courtney Goeltzenleuchter [Mon, 6 Jul 2015 04:08:51 +0000 (22:08 -0600)]
cube: Disable currently unused code
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 18:56:11 +0000 (12:56 -0600)]
Update CMake as things are ported.
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 18:53:31 +0000 (12:53 -0600)]
loader: track layer library list
It's possible for a layer library to support multiple
layer's (VkLayerProperties). Need to keep track of the
layer libraries separately from the layer properties.
This patch adds a layer library list to do that.
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 17:28:29 +0000 (11:28 -0600)]
loader: Save app allocation callbacks
Add host memory allocation functions that the
loader can use. Add comments of where these
allocation calls should go. Need to plumb the
instance pointer to some functions to support this.
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 17:19:03 +0000 (11:19 -0600)]
layers: Add TODO regarding locking
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 17:18:22 +0000 (11:18 -0600)]
mem_tracker: Remove unused variable
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 17:17:01 +0000 (11:17 -0600)]
mem_tracker: Move wsi data to layer_data
wsi_lunarg_enabled flag was stored in a separate
layer table. Doesn't need to be, move it to the
device layer table.
Courtney Goeltzenleuchter [Sun, 5 Jul 2015 17:10:06 +0000 (11:10 -0600)]
layers: Update basic sample layer
Update to work with final extension & layer proposal.
Courtney Goeltzenleuchter [Mon, 29 Jun 2015 21:39:26 +0000 (15:39 -0600)]
loader: bug 12992: extension and layer support
Much of layers and loader updated to work with
final extension and layer mechanism.
Not everything is working here.
Tobin Ehlis [Tue, 30 Jun 2015 21:28:00 +0000 (15:28 -0600)]
layers: Fix codegen for printing arrays of char* strings
Jon Ashburn [Thu, 2 Jul 2015 22:10:32 +0000 (16:10 -0600)]
loader: Add implicit layer activation
Jon Ashburn [Thu, 2 Jul 2015 20:10:53 +0000 (14:10 -0600)]
loader: Split the instance and device layer enablement env vars into 2
Rename them VK_INSTANCE_LAYERS and VK_DEVICE_LAYERS. Also remove some
unused stuff like getting layer enablement from registry and layer enablement
names are as filenames.
Jon Ashburn [Thu, 2 Jul 2015 18:59:25 +0000 (12:59 -0600)]
loader: Remove the merged enabled_extension list in device and instance structs
Instead layer stuff can just directly use the activate_layers_list rather
than having an intermediate list.
This simplifies the code and prepares for adding implicit layers directly.
Jon Ashburn [Thu, 2 Jul 2015 16:08:47 +0000 (10:08 -0600)]
loader: Add log warning if json manifest file doesn't end in .json
Jon Ashburn [Thu, 2 Jul 2015 15:40:15 +0000 (09:40 -0600)]
loader: Make a layer properties structure for manifest file.
Make the scanned layer list use this layer properties structure.
Make the list dynamically sized so can get rid of the current static array
and it's limited fix size.
Cody Northrop [Thu, 2 Jul 2015 17:33:41 +0000 (11:33 -0600)]
toolchain: Switch to using github for glslang
We don't have any tags to pull from, but we can pull specific
commits that are tested and known to work.
The current commit matches up with the previous subversion
version of glslang, so there is no functional change.
Cody Northrop [Tue, 12 May 2015 22:23:59 +0000 (16:23 -0600)]
toolchain: Add script to pull and build on Windows
Summary:
Add Windows version of update_external_sources, and relocate
glslang and LunarGLASS target revisions to external files shared
with Linux.
Details:
On Linux, we've successfully been using update_external_sources.sh
to get on the target version of glslang (which generates SPIR-V) and
LunarGLASS (which consumes SPIR-V). Both of these components are
peers to the typical Vulkan directory structure:
/LoaderAndTools
/layers
/loader
/demos
/...
/glslang
/LunarGLASS
There hasn't been an equivalent on Windows, so tedious manual steps
and GUIs have been used on individual systems.
This commit introduces a Windows batch script that automates the
process similar to Linux. It detects if you have the required
dependendcies and early-outs for any problems.
If you are a Windows developer that only wants spirv headers, run:
update_external_sources.bat --sync-glslang
If you want to build the Windows version of glslangValidator.exe, run:
update_external_sources.bat --build-glslang
If you want to run LunarGOO with SPIR-V support on Windows, run:
update_external_sources.bat --build-LunarGLASS
The script builds Debug and Release x64 versions, and should be run from:
Developer Command Prompt for VS2013
This commit also relocates the target version of glslang and LunarGLASS
to an external shared file that only contains the version number of
each. Both scripts read the value from the file, therefore they
cannot get out of sync.
Tobin Ehlis [Thu, 2 Jul 2015 16:45:16 +0000 (10:45 -0600)]
tests: Fix some failing layer validation tests
MemTracker was changing an API return value during an error case which caused ParamChecker to complain, flagging unexpected error.
ParamChecker was no allowing NULL fence on Queue Submit or NULL pDynamicOffsets on when binding Descriptor Sets. Both of these values can be NULL.
Tobin Ehlis [Fri, 3 Jul 2015 16:34:49 +0000 (10:34 -0600)]
loader: Rename loader_platform.h -> vk_loader_platform.h
Tobin Ehlis [Fri, 3 Jul 2015 16:15:26 +0000 (10:15 -0600)]
layers: Rename all layer headers to begin with "vk_layer_" prefix
Tobin Ehlis [Fri, 3 Jul 2015 15:42:57 +0000 (09:42 -0600)]
include: Rename vkLayer.h -> vk_layer.h and vkIcd.h -> vk_icd.h
Chris Forbes [Wed, 24 Jun 2015 02:34:53 +0000 (14:34 +1200)]
vulkan.h: v129 -- rework clear colors, remove raw clear [#14020]
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Mon, 22 Jun 2015 06:51:09 +0000 (18:51 +1200)]
tri: Use render pass load ops for color and depth clears
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Mon, 22 Jun 2015 06:47:28 +0000 (18:47 +1200)]
cube: Use render pass load op for depth clear
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Mon, 22 Jun 2015 05:21:59 +0000 (17:21 +1200)]
vulkan.h: Split attachment and image clears (#13914, v126)
- Add bit flags for image aspects.
- Replace VkRect with VkRect2D and VkRect3D.
- Rename vkCmdClearDepthStencil to vkCmdClearDepthStencilImage
- Add vkCmdClearColorAttachment and vkCmdClearDepthStencilAttachment
Remaining to be done:
- Actually implement vkCmdClearColorAttachment,
vkCmdClearDepthStencilAttachment in the Intel ICD
- Enforce renderpass interactions: CmdClear*Attachment may only be
called within a renderpass; CmdClear*Image may only be called outside
a renderpass.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Sun, 21 Jun 2015 08:09:12 +0000 (20:09 +1200)]
vulkan.h: Update features/limits structures (#12827, v125)
- Add infrastructure in vulkaninfo to dump features/limits. To be filled
out to dump everything interesting.
- Move existing limits from VkPhysicalDeviceInfo to
VkPhysicalDeviceLimits, and drop those that no longer exist.
- Adjust the drivers to fill out the above in their new location.
Other new features/limits still to be exposed by nulldrv and the intel
ICD.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chia-I Wu [Fri, 26 Jun 2015 07:34:39 +0000 (15:34 +0800)]
update vulkan.h for multi-level command buffers (V121)
With minimal changes to keep everything building and functioning.
Mark Lobodzinski [Fri, 3 Jul 2015 16:26:22 +0000 (10:26 -0600)]
vulkan.h: Added #define for MAX_DESCRIPTION
Part of header revision 135 changes.
Mark Lobodzinski [Thu, 2 Jul 2015 23:09:57 +0000 (17:09 -0600)]
vulkan.h: V120 -- Tighten spec around VkMemoryRequirements
Moved the HOST_LOCAL memory property.
Mark Lobodzinski [Thu, 2 Jul 2015 16:03:43 +0000 (10:03 -0600)]
vulkan.h: V119 -- Remove unsigned byte indices
Took out VK_INDEX_TYPE_UINT8.
Mark Lobodzinski [Thu, 2 Jul 2015 15:53:03 +0000 (09:53 -0600)]
vulkan.h: V118 -- Add array types to VkImageViewType
Mark Lobodzinski [Wed, 1 Jul 2015 21:49:28 +0000 (15:49 -0600)]
vulkan.h: V117 -- Remove Atomic Counters, Bug #14081
Mark Lobodzinski [Wed, 1 Jul 2015 21:18:26 +0000 (15:18 -0600)]
vulkan.h: V116 -- Remove VK_IMAGE_LAYOUT_CLEAR_OPTIMAL
Usage was declared redundant.
Mark Lobodzinski [Thu, 2 Jul 2015 22:49:40 +0000 (16:49 -0600)]
vulkan.h: V115 -- Reintroduce memory heaps & types. Bug #14082.
Reworked memory properties and types and added support for multiple
heaps.
Tobin Ehlis [Tue, 30 Jun 2015 20:32:16 +0000 (14:32 -0600)]
layers: Update ObjectTracker layer to check first-level struct parameters for valid objects
Tobin Ehlis [Tue, 30 Jun 2015 20:31:50 +0000 (14:31 -0600)]
layers: Fix ObjectTracker to add Instance when it's created
Tobin Ehlis [Thu, 2 Jul 2015 17:02:49 +0000 (11:02 -0600)]
demos: Set pName for cube shaders to "main" to keep ShaderChecker happy
David Pinedo [Thu, 2 Jul 2015 15:04:37 +0000 (09:04 -0600)]
loader: Use _alloca instead of alloca on Windows
Courtney Goeltzenleuchter [Sun, 28 Jun 2015 19:01:17 +0000 (13:01 -0600)]
bug 14014: Fill out support for VkShaderModule
Updated tests and demos to properly use VkShaderModule.
Add support to shader_checker for shader module.
Doesn't do anything with the pName parameter.
Courtney Goeltzenleuchter [Thu, 25 Jun 2015 00:24:19 +0000 (18:24 -0600)]
bug-14014: Allow multiple entrypoints in modules
Continue implementation of shader module.
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.
Tony Barbour [Wed, 1 Jul 2015 19:31:02 +0000 (13:31 -0600)]
loader: Remove locks from vkGet routines
If the driver needs thread safety to answer "get" requests, it is
assumed that it will lock for itself
Tony Barbour [Mon, 29 Jun 2015 22:20:35 +0000 (16:20 -0600)]
vulkan.h: Bug 14181 - Barriers need to be more precise
David Pinedo [Wed, 1 Jul 2015 18:57:51 +0000 (12:57 -0600)]
Demos: use vcproj .user file to configure location of vulkan.dll in msvs
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