GregF [Fri, 10 Jul 2015 18:35:41 +0000 (12:35 -0600)]
demos: add code to compile spv files in separate directories.
This enables parallel build.
Tobin Ehlis [Fri, 10 Jul 2015 17:10:21 +0000 (11:10 -0600)]
layers: Allow ObjectTracker to skip validation of objects that can be NULL
Jon Ashburn [Fri, 10 Jul 2015 16:41:15 +0000 (09:41 -0700)]
nulldrv: Update for bug 14033 Add new entrypoints and delete old ones
Courtney Goeltzenleuchter [Fri, 10 Jul 2015 15:47:49 +0000 (09:47 -0600)]
misc: Update header version
Courtney Goeltzenleuchter [Fri, 10 Jul 2015 15:06:56 +0000 (09:06 -0600)]
helper: Update header parser
The generated version of vulkan.h does not include structure
names on enums or structures. This was throwing off our parser.
This patch adds support to handle that.
Courtney Goeltzenleuchter [Fri, 10 Jul 2015 15:42:33 +0000 (09:42 -0600)]
misc: Make spirv compile and mv one command
Seeing some issues where a parallel make causes problems
by moving result of a different compile. Combined the
commands into one line to try and reduce odds that happens.
Courtney Goeltzenleuchter [Thu, 9 Jul 2015 17:44:38 +0000 (11:44 -0600)]
vulkan: Rename bool32_t to VkBool32
Target was v129 of the header
Jon Ashburn [Thu, 9 Jul 2015 21:02:25 +0000 (15:02 -0600)]
misc: Support Pipeline caches and multi pipeline create, bug 14033 API changes
David Pinedo [Thu, 9 Jul 2015 23:46:19 +0000 (17:46 -0600)]
Build: re-enable build of tests on Linux, enable build of null drv on Windows
David Pinedo [Thu, 9 Jul 2015 22:23:44 +0000 (16:23 -0600)]
Layers: They now compile on Windows.
Added missing vk funcs to basic and screenshot
Changed several funcs in mem_tracker to return void
Loader cmake file was generating .def file on linux, removed it
Fixed missing entry points in layers generated via python
Jon Ashburn [Thu, 9 Jul 2015 20:06:55 +0000 (14:06 -0600)]
loader: Fix bug where layer default system path string needed to be copied
Resulted in segfault.
Tobin Ehlis [Tue, 23 Jun 2015 17:34:28 +0000 (11:34 -0600)]
layers: Flag errors in DrawState if Clear or Resolve cmds issued incorrectly
Clear*Image and ResolveImage cmds should only be issued outside of a RenderPass.
Clear*Attachment cmds should only be issued inside of a RenderPass.
Tobin Ehlis [Wed, 1 Jul 2015 22:46:13 +0000 (16:46 -0600)]
layers: Add DrawState check to warn on Clears prior to Draw cmds
If a CmdClear*Attachment for Color or DS is added to CmdBuffer and no Draw cmds have yet been issued, a warning is issued as LOAD_OP_CLEAR is preferred method for clearing these attachments prior to a Draw.
Added a test to verify that this case is correctly flagged.
Updated viewMap to contain create info for Color and DS as well as generic Images.
Tobin Ehlis [Fri, 3 Jul 2015 14:45:14 +0000 (08:45 -0600)]
layers: Add USAGE bit validation to MemTracker layer
Verify both IMAGE and BUFFER usage bits.
Verify correct usage bits set for Image, Color, and DepthStencil View creation. Verify that SOURCE and DESTINATION usage bits correctly set for various transfer operations.
Fixed a bug where CreateInfo was not correctly tracked for swap chain images.
David Pinedo [Thu, 9 Jul 2015 18:44:38 +0000 (12:44 -0600)]
Windows SDK: Rename vulkan.dll to vulkan.<major>.dll
Chris Forbes [Fri, 3 Jul 2015 01:50:24 +0000 (13:50 +1200)]
layers: Update ShaderChecker to use new logging mechanism
V2: Rebase, fix issues with log_msg args, delete more old junk.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cody Northrop [Thu, 9 Jul 2015 16:47:40 +0000 (10:47 -0600)]
layers: Update custom CMake target for Windows
Mark Lobodzinski [Fri, 3 Jul 2015 21:58:09 +0000 (15:58 -0600)]
vulkan.h: V136 -- Vulkan Sparse Resource Issues
Totally reworked sparse resources. This commit also incorporates the
changes for bug 14237.
Ian Elliott [Wed, 8 Jul 2015 23:09:54 +0000 (17:09 -0600)]
vulkaninfo: Fix so that it compiles on Windows.
Cody Northrop [Wed, 8 Jul 2015 22:48:37 +0000 (16:48 -0600)]
loader: Build fixes for Windows
Cody Northrop [Wed, 8 Jul 2015 22:22:51 +0000 (16:22 -0600)]
layers: Fix CMake custom target on Windows
Cody Northrop [Wed, 8 Jul 2015 15:53:03 +0000 (09:53 -0600)]
toolchain: Update to latest glslang and LunarGLASS, fix script
glslang hash:
e6f7988adec197e0590fb8274b0412811456d3e6
LunarGLASS revision: 1093
Also, ensure update_external_sources.* fetches the repo before
checking out the hash.
Ian Elliott [Wed, 8 Jul 2015 21:43:03 +0000 (15:43 -0600)]
Windows: Show the use of "update_external_sources.bat"
Ian Elliott [Wed, 8 Jul 2015 20:33:52 +0000 (14:33 -0600)]
Windows: Update "Windows System Requirements" for glslang and tests.
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.