platform/upstream/Vulkan-Tools.git
8 years agoadded gcc versions of aligned malloc
Derrick Owens [Thu, 21 Jan 2016 19:46:16 +0000 (14:46 -0500)]
added gcc versions of aligned malloc

8 years agofixed custom allocator aligned memory allocations in tri sample.
unknown [Thu, 21 Jan 2016 16:21:53 +0000 (11:21 -0500)]
fixed custom allocator aligned memory allocations in tri sample.
fixed x86 compilation.

8 years agoFIXES: Non-MSVC compilers on Windows were failing.
Mark Young [Mon, 25 Jan 2016 23:49:47 +0000 (16:49 -0700)]
FIXES: Non-MSVC compilers on Windows were failing.

Fixes LunarXchange Issue #301.

8 years agoBUILD: Modified CMake ImageMagick detection logic to work with CMake 2.8.
Mark Young [Mon, 25 Jan 2016 23:02:08 +0000 (16:02 -0700)]
BUILD: Modified CMake ImageMagick detection logic to work with CMake 2.8.

Modified CMake ImageMagick detection logic to work with CMake 2.8.

8 years agoBUILD: Have git ignore the new build32 folder.
Mark Young [Mon, 25 Jan 2016 22:10:36 +0000 (15:10 -0700)]
BUILD: Have git ignore the new build32 folder.

8 years agoSAMPLES: Fixed memory leak in of presentMode data.
Mark Young [Mon, 25 Jan 2016 21:43:50 +0000 (14:43 -0700)]
SAMPLES: Fixed memory leak in of presentMode data.

We were leaking the presentMode array data, now it's freed.

8 years agoINSTALLER: Moved vulkaninfo 32-bit start menu link before 64-bit version.
Mark Young [Mon, 25 Jan 2016 20:40:21 +0000 (13:40 -0700)]
INSTALLER: Moved vulkaninfo 32-bit start menu link before 64-bit version.

Perform the 32-bit vulkaninfo start menu link creation prior to the 64-bit so that the 64-bit one appears by default.

8 years agoBUILD: Fixed more compilation warnings on 32-bit Windows builds.
Mark Young [Mon, 25 Jan 2016 20:37:06 +0000 (13:37 -0700)]
BUILD: Fixed more compilation warnings on 32-bit Windows builds.

Fixed more compilation warnings on 32-bit Windows builds.

8 years agoLOADER: Add 32-bit vulkaninfo link to start menu.
Mark Young [Mon, 25 Jan 2016 16:46:50 +0000 (09:46 -0700)]
LOADER: Add 32-bit vulkaninfo link to start menu.

Add 32-bit vulkaninfo link to start menu.

8 years agoLoader: Fix 32-bit Cmake detection of ImageMagick
Mark Young [Fri, 22 Jan 2016 22:06:43 +0000 (15:06 -0700)]
Loader: Fix 32-bit Cmake detection of ImageMagick

Older versions of Cmake didn't like the newer script.

8 years agoDOCS: Updated LoaderAndTools doc to indicate updated ImageMagick requirements.
Mark Young [Fri, 22 Jan 2016 16:20:03 +0000 (09:20 -0700)]
DOCS: Updated LoaderAndTools doc to indicate updated ImageMagick requirements.

Updated docs to indicate that both 32-bit and 64-bit installs of ImageMagick are required.

8 years agoInstaller: Clean up powershell header comment.
Mark Young [Wed, 20 Jan 2016 23:33:18 +0000 (16:33 -0700)]
Installer: Clean up powershell header comment.

Clean up the ConfigLayersAndVulkanDll header comment.

8 years agoInstaller: 32-bit installer changes to get working on 64-bit system.
Mark Young [Wed, 20 Jan 2016 21:48:21 +0000 (14:48 -0700)]
Installer: 32-bit installer changes to get working on 64-bit system.

These changes allow the installation of 32-bit items onto a 64-bit system.

8 years agoInstaller: Added changes to detect 32-bit layers on 64-bit system.
Mark Young [Tue, 19 Jan 2016 22:29:34 +0000 (15:29 -0700)]
Installer: Added changes to detect 32-bit layers on 64-bit system.

Added changes to detect 32-bit layers on 64-bit system.

8 years agoInstaller: Minor cleanup
Mark Young [Fri, 15 Jan 2016 23:01:46 +0000 (16:01 -0700)]
Installer: Minor cleanup

Modified size and added a clearer comment.

8 years agoInstaller: Changes for 32-bit installer
Mark Young [Fri, 15 Jan 2016 22:09:39 +0000 (15:09 -0700)]
Installer: Changes for 32-bit installer

Installer/scripts should now support 32-bit OS.

8 years agoInstaller: More work towards 32-bit installer for 32-bit OS
Mark Young [Fri, 15 Jan 2016 21:11:32 +0000 (14:11 -0700)]
Installer: More work towards 32-bit installer for 32-bit OS

Removed unnecessary code in update_external_sources batch, and added initial 32-bit path in installer.

8 years agoInstaller: Add support to install 32-bit vulkaninfo
Mark Young [Fri, 15 Jan 2016 20:12:10 +0000 (13:12 -0700)]
Installer: Add support to install 32-bit vulkaninfo

Add support to install 32-bit vulkaninfo

8 years agoLOADER/INSTALLER: Add support for 32-bit install in Win64 installer
Mark Young [Fri, 15 Jan 2016 19:35:39 +0000 (12:35 -0700)]
LOADER/INSTALLER: Add support for 32-bit install in Win64 installer

Added ability to install 32-bit and 64-bit Loader into the Win64 installer.

8 years agoWin32: Get 32-bit Windows build working
Mark Young [Wed, 13 Jan 2016 20:47:16 +0000 (13:47 -0700)]
Win32: Get 32-bit Windows build working
Also includes changes to allow simultaneous 32-bit and 64-bit Windows builds.

8 years agolayers: LX306, Fix NPE in draw_state
Mark Lobodzinski [Mon, 25 Jan 2016 21:27:49 +0000 (14:27 -0700)]
layers:  LX306, Fix NPE in draw_state

Fixed a case where getCBNode returned NULL but cleanInFlightcmdBuffer
used the result.

8 years agoloader: Disable using CreateInstance allocation callbacks
Jon Ashburn [Mon, 25 Jan 2016 21:51:47 +0000 (14:51 -0700)]
loader: Disable using CreateInstance allocation callbacks

Workaround for cts to work.

8 years agoAdded one more license to list of licenses
David Pinedo [Mon, 25 Jan 2016 21:39:31 +0000 (14:39 -0700)]
Added one more license to list of licenses

8 years agodemos: Select queue family based on both graphics and present support
Tony Barbour [Fri, 22 Jan 2016 21:36:40 +0000 (14:36 -0700)]
demos: Select queue family based on both graphics and present support

8 years agoLAYERS: More 32-bit fixes caused by recent commits.
Mark Young [Mon, 25 Jan 2016 19:18:32 +0000 (12:18 -0700)]
LAYERS: More 32-bit fixes caused by recent commits.

Had to fix more 32-bit build issues caused by recent commits.

8 years agoWin32: Get 32-bit Windows build working
Mark Young [Wed, 13 Jan 2016 20:47:16 +0000 (13:47 -0700)]
Win32: Get 32-bit Windows build working
Also includes changes to allow simultaneous 32-bit and 64-bit Windows builds.

8 years agoBUILD: Fix build of draw_state.cpp with VS 2015.
Mark Young [Tue, 19 Jan 2016 00:22:48 +0000 (17:22 -0700)]
BUILD: Fix build of draw_state.cpp with VS 2015.

Added /bigobj to Debug build of all layer files when using VS 2015 or newer.

8 years agoBUILD: Moved 64-bit source dir back to build from build64.
Mark Young [Mon, 18 Jan 2016 22:48:20 +0000 (15:48 -0700)]
BUILD: Moved 64-bit source dir back to build from build64.

Moved 64-bit source dir back to build from build64 to be backwards compatible.

8 years agoWin32: Get 32-bit Windows build working
Mark Young [Wed, 13 Jan 2016 20:47:16 +0000 (13:47 -0700)]
Win32: Get 32-bit Windows build working
Also includes changes to allow simultaneous 32-bit and 64-bit Windows builds.

8 years agoBuildFixes: Hard-code Win64 in Visual Studio detect script
Mark Young [Thu, 7 Jan 2016 19:43:07 +0000 (12:43 -0700)]
BuildFixes: Hard-code Win64 in Visual Studio detect script

We don't officially support Win32 yet, so hard-code Win64 to protect the build.

8 years agoBuildFixes: Fixed update_external_sources batch file for Windows build.
Mark Young [Thu, 7 Jan 2016 19:41:14 +0000 (12:41 -0700)]
BuildFixes: Fixed update_external_sources batch file for Windows build.

Code to detect Visual Studio version was encapsulated in a local section.

8 years agolayers: LX300, Conditionally validate pInheritanceInfo in object_tracker
Mark Lobodzinski [Sun, 24 Jan 2016 01:31:23 +0000 (18:31 -0700)]
layers: LX300, Conditionally validate pInheritanceInfo in object_tracker

In BeginCommandBuffers, pInheritance may be non-NULL but should only be
validated if it is part of a secondary command buffer. Added status flag
for this setting in AllocateCommandBuffers and added code-gen for this
special case to the layer generation code and made the routine
(dereference_conditionally) general-purpose.

8 years agolayers: LX295, fix draw_state vkCreateDescriptorPool range sizes
Mark Lobodzinski [Sat, 23 Jan 2016 23:55:31 +0000 (16:55 -0700)]
layers: LX295, fix draw_state vkCreateDescriptorPool range sizes

Was set to VK_DESCRIPTOR_TYPE_END_RANGE, should have been
VK_DESCRIPTOR_TYPE_RANGE_SIZE

8 years agoshader compiler: map VertexIndex to VertexID
GregF [Sat, 23 Jan 2016 00:55:49 +0000 (17:55 -0700)]
shader compiler: map VertexIndex to VertexID

This is not a perfect implementation of VertexIndex. It assumes a base of zero.
Also pickup latest LunarGLASS that (truly) supports VertexIndex
Also re-enable ir_validate for undeclared variables

8 years agolayers: Only set up tracking for new descriptors if allocation succeeded.
Chris Forbes [Fri, 22 Jan 2016 02:44:40 +0000 (15:44 +1300)]
layers: Only set up tracking for new descriptors if allocation succeeded.

It's possible for this call to fail -- the pool is exhausted, or the request was simply bogus. In these cases, the returned descriptor set handles are meaningless. Don't shove them in our hashtables.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Set memory type mask for buffers.
Chris Forbes [Fri, 22 Jan 2016 02:28:30 +0000 (15:28 +1300)]
nulldrv: Set memory type mask for buffers.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: fill out physical device memory info
Chris Forbes [Fri, 22 Jan 2016 02:23:45 +0000 (15:23 +1300)]
nulldrv: fill out physical device memory info

Previously we just left this filled with junk.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Fix draw_state validation of descriptor updates with images
Tobin Ehlis [Thu, 21 Jan 2016 17:21:04 +0000 (10:21 -0700)]
layers: Fix draw_state validation of descriptor updates with images

Earlier fix was broken b/c we didn't have format of swapchain images.

This fix adds the format to imageLayoutMap IMAGE_NODE struct, which contains all images created via vkCreateImage() as well as all swapchain images fetched via vkGetSwapchainImagesKHR().

This required enhancing the SWAPCHAIN_NODE to include the createInfo. Since this has a dangling ptr for queueIndices, added a constructor and destructor to that struct to handle allocation and clean-up of that ptr.

8 years agomisc: bump to header 1.0.2
Jon Ashburn [Fri, 22 Jan 2016 22:39:20 +0000 (15:39 -0700)]
misc: bump to header 1.0.2

8 years agolayers: MR153, Correctly track inFlight cmdBuffers per queue
Tobin Ehlis [Wed, 20 Jan 2016 23:23:37 +0000 (16:23 -0700)]
layers: MR153, Correctly track inFlight cmdBuffers per queue

There were per-queue vectors of the cmdBuffers in flight, but they were not
being consistently used/updated.
This change keeps two sets of inFlight cmdBuffers: one globally for all
cmdBuffers on the device, and one for each queue.
Ideally we could just track per-queue, but secondary command buffers are an
exception that's considered "in-flight" from the time they're recorded in a
primary command buffer with the vkCmdExecuteCommands() call so having a global
list provides a way to account for that.
Command buffers are added into both the global inFlight set and the individual
queue set at QueueSubmit time.
When cleaning up command buffers based on fences or Idle waits, correctly
remove the cmdBuffers from the appropriate queue inFlight set. Also, if the
cmdBuffer is not inFlight on any other queues, remove it from the the global
inFlight set.
Removed the deviceMap as it was only being used to hold a vector of queues.
Since layer_data struct is already per-device, just moved vector of queues
directly into layer_data struct.

8 years agolayers: MR150, Fix render pass graphics checks
Michael Lentine [Tue, 19 Jan 2016 20:00:53 +0000 (14:00 -0600)]
layers: MR150, Fix render pass graphics checks

Make sure that VK_SUBPASS_EXTERNAL is handled properly.

8 years agolayers: MR139, draw_state VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT checks
Tobin Ehlis [Fri, 15 Jan 2016 20:34:44 +0000 (13:34 -0700)]
layers: MR139, draw_state VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT checks

Added a set to track which secondary cmdBuffers are contained within a primary cmdBuffer.
Added new DRAWSTATE_INVALID_CB_SIMULTANEOUS_USE enum value for new error/warning
cases, along with line in documentation.
New validation issues and state updates are listed below.

While tracking cmdBuffers at QueueSubmit time:
 1. Flag an error if a cmdBuffer is already in flight and does not have
    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT set
 2. Account for tracking of secondary cmdBuffers (and their in_use resources)
    that are submitted within a primary command buffer

When submitting secondary command buffers into primary command buffer at
    CmdExecuteCommands time:
 1. Flag an error if secondary cmdBuffer is in flight and doesn't have
 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT set.
 2. Warn user if secondary cmdBuffer doesn't have
 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT set but primary cmdBuffer does.
 This causes primary cmdBuffer to be treated as if
 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT isn't set.
 3. Add secondary cmdBuffers to set off of primary cmdBuffer for tracking purposes
 4. Add secondary cmdBuffers to inFlight set

8 years agolayers: MR137, Flag error if set updated or freed while in use
Tobin Ehlis [Thu, 14 Jan 2016 19:47:19 +0000 (12:47 -0700)]
layers: MR137, Flag error if set updated or freed while in use

It is illegal to free or update a descriptorSet that is in use.
Updated SET_NODE to inherit from BASE_NODE for in_use tracking.
At the time that Draws are recorded into the cmdBuffer, capture any active sets
for that cmdBuffer into std::set<VkDescriptorSet> activeSets.
At the time vkCmdBindDescriptorSets is recoreded in cmdBuffer, flag descriptor
sets as in use. At the time a set is freed, flag an error if set is in use.

8 years agoglslang: bump up glslang and spirv-tools versions for ISV release
GregF [Thu, 21 Jan 2016 00:14:31 +0000 (17:14 -0700)]
glslang: bump up glslang and spirv-tools versions for ISV release

8 years agoshader compiler: add new VertexIndex
GregF [Wed, 20 Jan 2016 23:37:18 +0000 (16:37 -0700)]
shader compiler: add new VertexIndex

8 years agoMake cJSON case-sensitive
Antoine Labour [Thu, 21 Jan 2016 00:32:17 +0000 (16:32 -0800)]
Make cJSON case-sensitive

8 years agodebug_report: Integrate review feedback
Courtney Goeltzenleuchter [Tue, 19 Jan 2016 23:08:39 +0000 (16:08 -0700)]
debug_report: Integrate review feedback

Conflicts:
include/vulkan/vk_ext_debug_report.h

Conflicts:
include/vulkan/vk_ext_debug_report.h

8 years agolayers: Fix screenshot to intercept CreateInstance so it canbe on instance chain
Jon Ashburn [Wed, 20 Jan 2016 15:52:40 +0000 (08:52 -0700)]
layers: Fix screenshot to intercept CreateInstance so it canbe on instance chain

8 years agovktrace: Get partially working again with the new loader/layer interface
Jon Ashburn [Wed, 20 Jan 2016 15:08:25 +0000 (08:08 -0700)]
vktrace: Get partially working again with the new loader/layer interface

8 years agolayers: Remove obsolete VkbaseLayerObject
Jon Ashburn [Wed, 20 Jan 2016 15:07:14 +0000 (08:07 -0700)]
layers: Remove obsolete VkbaseLayerObject

8 years agoloader: remove resolved TODOs
Courtney Goeltzenleuchter [Thu, 14 Jan 2016 23:06:06 +0000 (16:06 -0700)]
loader: remove resolved TODOs

8 years agoloader: Remove CreateInstance and CreateDevice
Courtney Goeltzenleuchter [Thu, 14 Jan 2016 23:34:30 +0000 (16:34 -0700)]
loader: Remove CreateInstance and CreateDevice

The new init mechanism always uses GetInstanceProcAddr
to query the next layer's CreateInstance or CreateDevice
function. Thus no reason to cache those function pointers
in the instance dispatch table.

8 years agoloader: Use ICD's GetInstanceProcAddr
Courtney Goeltzenleuchter [Fri, 15 Jan 2016 21:15:24 +0000 (14:15 -0700)]
loader: Use ICD's GetInstanceProcAddr

Appears there is some difference in behavior between
vkCreateDevice addr that we get initially vs. one
later. Not sure what difference is yet.

-------------------------------

8 years agoloader: Add util to strip loader extensions
Courtney Goeltzenleuchter [Fri, 15 Jan 2016 21:15:00 +0000 (14:15 -0700)]
loader: Add util to strip loader extensions

8 years agoloader: implement new layer init method
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 19:18:43 +0000 (12:18 -0700)]
loader: implement new layer init method

New layer init method requires the construction of
Link information for CreateInstance and CreateDevice
that is accessible to layers via the CreateInfo.pNext pointer.
The layer can then use the Get*ProcAddr from the Link
structure to initialize their dispatch table if the
call down the chain returns successfully.
This removes the need to do special initialization work
at Get*ProcAddr time.
Layer Get*ProcAddr now return their internal function
pointers regardless of the value of instance or device.
Only need to have valid instance & device when looking
up extensions or when passing the request down the chain.
This mechanism allows us to remove object wrapping used
by the loader previously. Also simplifies the dispatch table
setup.

Conflicts:
layers/device_limits.cpp
layers/draw_state.cpp
loader/loader.c
loader/trampoline.c

8 years agolayers: fix threading destroy instance
Courtney Goeltzenleuchter [Fri, 15 Jan 2016 18:58:33 +0000 (11:58 -0700)]
layers: fix threading destroy instance

The threading layer was using the generic destroy_instance
utility when it should be using the utility that takes
a map.

8 years agolayers: Add utility functions for new layer init
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:52:37 +0000 (11:52 -0700)]
layers: Add utility functions for new layer init

These utilities will find the appropriate CreateInfo
extension that defines the layer link information.

8 years agolayers: Update layer info to match json
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:50:04 +0000 (11:50 -0700)]
layers: Update layer info to match json

8 years agoloader: Add structures to support new init method
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:40:27 +0000 (11:40 -0700)]
loader: Add structures to support new init method

These structures will be used to extend CreateInstance
and CreateDevice to support layers. The loader will
create a chain of these structures - one per layer -
that tells the layer the Get*ProcAddr for the next
lower part.

8 years agoicd: Remove unused reference to vk_sdk_platform.h
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:39:32 +0000 (11:39 -0700)]
icd: Remove unused reference to vk_sdk_platform.h

8 years agovkjson: initial commit
Antoine Labour [Tue, 27 Oct 2015 19:21:09 +0000 (12:21 -0700)]
vkjson: initial commit

8 years agolayers: MR148/GL82, Don't memset PIPELINE_NODE in draw_state
Tobin Ehlis [Wed, 20 Jan 2016 16:01:24 +0000 (09:01 -0700)]
layers: MR148/GL82, Don't memset PIPELINE_NODE in draw_state

Remove memset of PIPELINE_NODE from Compute Pipeline creation.
Default constructor handles initialization so no need to memset and this was
causing a crash due to corrupting the active_sets std::set.

8 years agolayers: MR149, Cleanup CMD_NODE use in draw_state
Tobin Ehlis [Wed, 20 Jan 2016 17:25:29 +0000 (10:25 -0700)]
layers: MR149, Cleanup CMD_NODE use in draw_state

Move pCmds vector<CMD_NODE*> to be cmds vector<CMD_NODE> instead. This simplifies
cleanup of the data structure as we don't have to manage the ptr new/delete lifecycle.

8 years agoWindowsRTInst: Layer registry values are created/removed correctly on Windows7
David Pinedo [Wed, 20 Jan 2016 04:19:11 +0000 (21:19 -0700)]
WindowsRTInst: Layer registry values are created/removed correctly on Windows7

8 years agolayers: GL84, Reset vkQueuePresentKHR semaphore state in mem_tracker
Mark Lobodzinski [Tue, 19 Jan 2016 23:27:27 +0000 (16:27 -0700)]
layers: GL84, Reset vkQueuePresentKHR semaphore state in mem_tracker

8 years agolayers: GL92, Properly remove cmd buf metadata
Mark Lobodzinski [Tue, 19 Jan 2016 23:08:36 +0000 (16:08 -0700)]
layers: GL92, Properly remove cmd buf metadata

When FreeCommandBuffers was called the helper routine was not
properly removing the command buffer tracking data.

8 years agolayers: MR145/GL67, Correctly mirror command buffer inheritance info
Tobin Ehlis [Tue, 19 Jan 2016 20:12:52 +0000 (13:12 -0700)]
layers: MR145/GL67, Correctly mirror command buffer inheritance info

Embedded InheritanceInfo struct within command buffer BeginInfo was not correctly
mirrored in draw_state. Correctly copy this data as appropriate and correctly
clear it when command buffer is reset.

Conflicts:
layers/draw_state.cpp

8 years agolayers: MR144, Fix layer names
Michael Lentine [Tue, 19 Jan 2016 20:19:38 +0000 (14:19 -0600)]
layers: MR144, Fix layer names

8 years agolayers: MR143/GL85, Fix draw_state implicit command buffer reset
Tobin Ehlis [Tue, 19 Jan 2016 19:03:34 +0000 (12:03 -0700)]
layers: MR143/GL85, Fix draw_state implicit command buffer reset

On vkBeginCommandBuffer an implicit reset occurred late and would overwrite the
beginInfo. Moved implicit reset earlier so that beginInfo is maintained
regardless of whether or not implicit reset is triggered.
Also removed some dead code from resetCB().

8 years agodebug_report: MR141, Change pUserData to match type used elsewhere
Courtney Goeltzenleuchter [Tue, 19 Jan 2016 00:42:08 +0000 (17:42 -0700)]
debug_report: MR141, Change pUserData to match type used elsewhere

Other uses of pUserData in Vulkan do not have a const qualifier,
remove it for this pUserData.

8 years agolayers: MR142/GL89, draw_state: check swapchain images during descriptor updates
Tobin Ehlis [Tue, 19 Jan 2016 15:36:40 +0000 (08:36 -0700)]
layers: MR142/GL89, draw_state: check swapchain images during descriptor updates

When vkUpdateDescriptorSets() is called, if an imageView was being updated, we
were not including swapchain images in the check to verify a valid image.
Adding these to the check to avoid false positives.

8 years agolayers: Fix object_trackers dereferencing of invalid pointers
Mark Lobodzinski [Tue, 19 Jan 2016 16:57:24 +0000 (09:57 -0700)]
layers: Fix object_trackers dereferencing of invalid pointers

vkUpdateDescriptorSets->VkWriteDescriptorSet: object_tracker should only validate
array specified by VkDescriptorType.

8 years agolayers: Fix problems with screenshot to get it working again
Karl Schultz [Tue, 19 Jan 2016 16:56:56 +0000 (09:56 -0700)]
layers: Fix problems with screenshot to get it working again

- Set the layerCount member of VkImageSubresourceLayers
- Add image transition memory barriers (needed for some drivers)
- Add dispatch table to command buffer object created by this layer.
  This lets it get dispatched by a downstream layer, if present.

8 years agolayers: MR140, Add get_type_def helper in DrawState
Chris Forbes [Sun, 17 Jan 2016 23:07:01 +0000 (12:07 +1300)]
layers: MR140, Add get_type_def helper in DrawState

8 years agolayers: MR140, Add SPIRV instruction stream iterator helper
Chris Forbes [Sun, 17 Jan 2016 19:56:40 +0000 (08:56 +1300)]
layers: MR140, Add SPIRV instruction stream iterator helper

8 years agolayers: MR140, Pass whole shader_module to build_type_def_index
Chris Forbes [Sun, 17 Jan 2016 19:56:09 +0000 (08:56 +1300)]
layers: MR140, Pass whole shader_module to build_type_def_index

8 years agolayers: MR140, Remove some commented merge remnants
Chris Forbes [Sun, 17 Jan 2016 19:36:20 +0000 (08:36 +1300)]
layers: MR140, Remove some commented merge remnants

8 years agolayers: LX257, Validate Uniform/Storage buffer offset alignments
Mark Lobodzinski [Wed, 13 Jan 2016 17:23:15 +0000 (10:23 -0700)]
layers: LX257, Validate Uniform/Storage buffer offset alignments

8 years agoloader: Return the loader created instance rather than from the instance chain
Jon Ashburn [Mon, 18 Jan 2016 19:20:03 +0000 (12:20 -0700)]
loader:  Return the loader created instance rather than from the instance chain

Fix's issue with layers that wrap instance.

8 years agoinstaller: Fix LunarXchange issue #287.
Mark Young [Fri, 15 Jan 2016 16:01:11 +0000 (09:01 -0700)]
installer: Fix LunarXchange issue #287.

Apply David's fix to force the registry to be created.

8 years agolayers: Fix json file for multi layer
Jon Ashburn [Fri, 15 Jan 2016 20:34:22 +0000 (13:34 -0700)]
layers: Fix json file for multi layer

8 years agolaoder: Fix phys_dev to use unwrapped version in loader_CreateDevice
Jon Ashburn [Fri, 15 Jan 2016 20:10:10 +0000 (13:10 -0700)]
laoder: Fix phys_dev to use unwrapped version in loader_CreateDevice

8 years agolayers: Add minimal actual analysis of interface blocks to DrawState
Chris Forbes [Fri, 15 Jan 2016 01:53:11 +0000 (14:53 +1300)]
layers: Add minimal actual analysis of interface blocks to DrawState

There's definitely still room for improvement here (SPIRV-Tools might have some stuff that will make some of these more complex module walks a little clearer); however, this adds enough support for interface blocks for us to generate all the same kinds of mismatch errors we were previously generating for loose inputs and outputs.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Fix mishandling of VI vs VS validation (Gitlab#69)
Chris Forbes [Thu, 14 Jan 2016 22:32:03 +0000 (11:32 +1300)]
layers: Fix mishandling of VI vs VS validation (Gitlab#69)

This wasn't quite correct. We'd end up trying to run it_a off beyond attribs.end(),
which is invalid and upsets the MS debug stdlib. This is most likely the root cause
of the weirdness that caused people to add _at_end, _first, etc to this function long ago,
so that can all disappear -- but for now, let's just deal with the actual bug.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Initialize image format properties
Chris Forbes [Tue, 29 Dec 2015 21:52:16 +0000 (10:52 +1300)]
nulldrv: Initialize image format properties

Previously this was just left uninitialized. Image layer would then randomly fail image creation based on comparisons against junk.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Add more proper support for ShaderModule objects
Chris Forbes [Tue, 29 Dec 2015 21:51:01 +0000 (10:51 +1300)]
nulldrv: Add more proper support for ShaderModule objects

Again not OK to claim success but return junk rather than a proper handle. Fixes various layers exploding when running against nulldrv.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Add minimal support for pipeline cache objects.
Chris Forbes [Tue, 29 Dec 2015 21:49:29 +0000 (10:49 +1300)]
nulldrv: Add minimal support for pipeline cache objects.

It's not really OK to claim success but leave junk in the caller's memory rather than a real handle. This prevents object tracker randomly exploding when running against the null driver.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Claim that our supported image formats can be used as color attachments
Chris Forbes [Tue, 29 Dec 2015 21:48:06 +0000 (10:48 +1300)]
nulldrv: Claim that our supported image formats can be used as color attachments

Previously if an app would be unable to find any color renderable format, so only
an app that didn't bother (and wasn't running under validation) would get anywhere.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Expose some present modes
Chris Forbes [Tue, 29 Dec 2015 21:47:26 +0000 (10:47 +1300)]
nulldrv: Expose some present modes

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Expose some basic formats as presentable
Chris Forbes [Tue, 29 Dec 2015 21:45:47 +0000 (10:45 +1300)]
nulldrv: Expose some basic formats as presentable

Previously we just left whatever junk the caller had in this memory, which generally crashed a caller.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Claim to support any WSI surface.
Chris Forbes [Tue, 29 Dec 2015 21:44:58 +0000 (10:44 +1300)]
nulldrv: Claim to support any WSI surface.

Previously this just left whatever junk the caller had, with unpredictable results.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agonulldrv: Initialize memory types mask
Chris Forbes [Tue, 29 Dec 2015 21:43:16 +0000 (10:43 +1300)]
nulldrv: Initialize memory types mask

Previously apps would randomly succeed or fail to find a matching memory type based on whatever junk happened to be here. Instead, claim to support all memory types.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: gitlab #62, object_tracker allows NULL semaphore in AcquireNextImage
Jon Ashburn [Thu, 14 Jan 2016 22:11:55 +0000 (15:11 -0700)]
layers: gitlab #62, object_tracker allows NULL semaphore in AcquireNextImage

8 years agospirv-tools: update version due to build problems seen by norbert
GregF [Wed, 13 Jan 2016 21:25:26 +0000 (14:25 -0700)]
spirv-tools: update version due to build problems seen by norbert

8 years agoloader: Fix bad memory ref and CreateInstance fail don't write ouptut
Jon Ashburn [Thu, 14 Jan 2016 20:51:55 +0000 (13:51 -0700)]
loader: Fix bad memory ref and CreateInstance fail don't write ouptut

Gitlab #58
CreateInstance shouldn't update output parameter on failure.

8 years agoChange api_version to 1.0.1 in json files
Tony Barbour [Thu, 14 Jan 2016 17:40:40 +0000 (10:40 -0700)]
Change api_version to 1.0.1 in json files

From 0.210.0

8 years agolayers: Gitlab #71, Fix copy/paste error in mem_tracker
Mark Lobodzinski [Thu, 14 Jan 2016 17:15:37 +0000 (10:15 -0700)]
layers: Gitlab #71, Fix copy/paste error in mem_tracker

8 years agonulldrv: MR131, Update api_version in nulldrv json file
Tobin Ehlis [Thu, 14 Jan 2016 16:35:02 +0000 (09:35 -0700)]
nulldrv: MR131, Update api_version in nulldrv json file

8 years agolayers: MR130, Handle VK_WHOLE_SIZE properly in mem_tracker:initializeAndTrackMemory
Chris Forbes [Thu, 14 Jan 2016 02:57:46 +0000 (15:57 +1300)]
layers: MR130, Handle VK_WHOLE_SIZE properly in mem_tracker:initializeAndTrackMemory

VK_WHOLE_SIZE is ~0ull. If this were passed as `size`, we'd try to allocate ~1ull
bytes, and then memset them all to 0xb. This tends to explode.

8 years agolayers: MR129, Remove incorrect asserts from param_checker and object_tracker
Tobin Ehlis [Wed, 13 Jan 2016 21:45:14 +0000 (14:45 -0700)]
layers: MR129, Remove incorrect asserts from param_checker and object_tracker

For apps that run with multiple instances, it's perfectly valid to have instances
remaining at DestroyInstace() time so removing that assert from param_checker.
Also, the assert appears to have been cut-and-pasted into DestroyDevice of both
param_checker and object_tracker. The same logic applies for apps that use
multiple devices. Running vulkancts with layers enabled found these issues.