Jason Ekstrand [Thu, 9 Jul 2015 22:38:30 +0000 (15:38 -0700)]
vk: Add support for GetPhysicalDeviceLimits
Jason Ekstrand [Thu, 9 Jul 2015 20:54:08 +0000 (13:54 -0700)]
vk: Add GetPhysicalDeviceFeatures
Chad Versace [Thu, 9 Jul 2015 22:51:06 +0000 (15:51 -0700)]
vk/device: Fix vkEnumeratePhysicalDevices()
The Vulkan spec says that pPhysicalDeviceCount is an out parameter if
pPhysicalDevices is NULL; otherwise it's an inout parameter.
Mesa incorrectly treated it unconditionally as an inout parameter, which
could have lead to reading unitialized data.
Chad Versace [Thu, 9 Jul 2015 22:38:58 +0000 (15:38 -0700)]
vk/device: Move device enumeration to vkEnumeratePhysicalDevices()
Don't enumerate devices in vkCreateInstance(). That's where global,
device-independent initialization should happen. Move device enumeration
to the more logical location, vkEnumeratePhysicalDevices().
Chad Versace [Thu, 9 Jul 2015 22:23:25 +0000 (15:23 -0700)]
vk/device: Be consistent about path to DRM device
Function fill_physical_device() has a 'path' parameter, and struct
anv_physical_device has a 'path' member. Sometimes these are used;
sometimes hardcoded "/dev/dri/renderD128" is used instead.
Be consistent. Hardcode "/dev/dri/renderD128" in exactly one location,
during initialization of the physical device.
Connor Abbott [Thu, 9 Jul 2015 18:29:23 +0000 (14:29 -0400)]
vk/compiler: create an empty parameters list
Prevents problems when initializing the sanity_param_count.
Connor Abbott [Thu, 9 Jul 2015 18:28:39 +0000 (14:28 -0400)]
nir/spirv: fix wrong writemask for ALU operations
Connor Abbott [Thu, 9 Jul 2015 02:01:33 +0000 (22:01 -0400)]
nir/spirv: fix memory context for builtin variable
Fixes valgrind errors with func.depthstencil.basic.
Connor Abbott [Thu, 9 Jul 2015 01:50:16 +0000 (21:50 -0400)]
nir/spirv: zero out value array
Before values are pushed or annotated with a name, decoration, etc.,
they need to have an invalid type, NULL name, NULL decoration, etc.
ralloc zero's everything by accident, so this wasn't an issue in
practice, but we should be explicitly zero'ing it.
Connor Abbott [Thu, 9 Jul 2015 01:48:57 +0000 (21:48 -0400)]
vk/compiler: create the right kind of program struct
This fixes Valgrind errors and gets all the tests to pass with
--use-spir-v.
Connor Abbott [Thu, 9 Jul 2015 01:47:43 +0000 (21:47 -0400)]
vk/compiler: mark inputs/outputs as read/written
This doesn't handle inputs and outputs larger than a vec4, but we plan
to add a varyiing splitting/packing pass to handle those anyways.
Jason Ekstrand [Thu, 9 Jul 2015 00:45:50 +0000 (17:45 -0700)]
vk/vulkan.h: Copy the VkStructureType enum from version 130
We now have the exact same structs which require pType.
Jason Ekstrand [Thu, 9 Jul 2015 00:29:49 +0000 (17:29 -0700)]
vk: Move to the new pipeline creation API's
Chad Versace [Wed, 8 Jul 2015 21:39:05 +0000 (14:39 -0700)]
vk/0.130: Remove VkImageViewCreateInfo::minLod
It's now set solely through VkSampler.
Jason Ekstrand [Wed, 8 Jul 2015 21:37:30 +0000 (14:37 -0700)]
vk/vulkan.h: Move renderPassContinue from GraphicsBeginInfo to BeginInfo
Jason Ekstrand [Wed, 8 Jul 2015 21:24:56 +0000 (14:24 -0700)]
vk/vulkan.h: Update to the new UpdateDescriptorSets api
Jason Ekstrand [Wed, 8 Jul 2015 21:24:12 +0000 (14:24 -0700)]
vk: Add a macro for creating anv variables from vulkan handles
This is very helpful for doing the mass bunch of casts at the top of a
function. It will also be invaluable when we get type saftey in the API.
Chad Versace [Wed, 8 Jul 2015 19:53:49 +0000 (12:53 -0700)]
vk/0.130 Update VkObjectType values
Don't import any new enum tokens from the 0.130 header. Just update the
values of existing enums. This reduces the diff by about 16 lines.
Chad Versace [Wed, 8 Jul 2015 19:51:46 +0000 (12:51 -0700)]
vk/0.130: Remove VkDescriptorUpdateMode
Nowhere used.
Chad Versace [Wed, 8 Jul 2015 19:49:15 +0000 (12:49 -0700)]
vk/0.130: Remove VK_DEVICE_CREATE_MULTI_DEVICE_IQ_MATCH_BIT
Chad Versace [Wed, 8 Jul 2015 19:46:35 +0000 (12:46 -0700)]
vk/0.130: Update vkCmdBlitImage signature
Add VkTexFilter param. Ignored for now.
Jason Ekstrand [Wed, 8 Jul 2015 18:51:12 +0000 (11:51 -0700)]
vk/vulkan.h: Add packing parameters to BufferImageCopy
Chad Versace [Wed, 8 Jul 2015 18:49:43 +0000 (11:49 -0700)]
vk/0.130: Remove msaa members of VkDepthStencilViewCreateInfo
Jason Ekstrand [Wed, 8 Jul 2015 18:44:52 +0000 (11:44 -0700)]
vk/vulkan.h: Move over to the new border color enums
Jason Ekstrand [Wed, 8 Jul 2015 18:16:45 +0000 (11:16 -0700)]
vk/vulkan.h: Move VkFormatProperties
Jason Ekstrand [Wed, 8 Jul 2015 17:57:13 +0000 (10:57 -0700)]
vk/vulkan.h: Add RenderPassBeginContents
Jason Ekstrand [Wed, 8 Jul 2015 17:53:32 +0000 (10:53 -0700)]
vk/vulkan.h: Add command buffer levels
Jason Ekstrand [Wed, 8 Jul 2015 17:49:43 +0000 (10:49 -0700)]
vk/vulkan.h: Import the VkPipeEvent enum from 130
Now, VkPipeEventFlags is back in sync with VkPipeEvent
Jason Ekstrand [Wed, 8 Jul 2015 17:39:31 +0000 (10:39 -0700)]
vk/vulkan.h: Remove VkFormatInfoType
Jason Ekstrand [Wed, 8 Jul 2015 17:38:07 +0000 (10:38 -0700)]
vk/vulkan.h: Update extension handling to rev 130
Jason Ekstrand [Wed, 8 Jul 2015 16:34:47 +0000 (09:34 -0700)]
vk/vulkan.h: Move format quering to the physical device
Jason Ekstrand [Wed, 8 Jul 2015 16:25:13 +0000 (09:25 -0700)]
vk/vulkan.h: Remove some peer opening structs and STRUCTURE_TYPE enums
Jason Ekstrand [Wed, 8 Jul 2015 16:23:29 +0000 (09:23 -0700)]
vk: Add a copy of the v90 header.
Jason Ekstrand [Wed, 8 Jul 2015 16:18:09 +0000 (09:18 -0700)]
vk/vulkan.h: Remove an unneeded comment
Jason Ekstrand [Wed, 8 Jul 2015 16:16:48 +0000 (09:16 -0700)]
vk/vulkan.h: Remove the MemoryRange stubs and add sparse stubs
Jason Ekstrand [Wed, 8 Jul 2015 16:04:16 +0000 (09:04 -0700)]
vk/vulkan.h: Switch BindObjectMemory to a device function and remove the index
Jason Ekstrand [Wed, 8 Jul 2015 01:51:53 +0000 (18:51 -0700)]
vk/vulkan.h: Switch to the split ProcAddr functions in 130
Jason Ekstrand [Wed, 8 Jul 2015 01:20:18 +0000 (18:20 -0700)]
vk/vulkan.h: Switch from GetImageSubresourceInfo to GetImageSubresourceLayout
Jason Ekstrand [Wed, 8 Jul 2015 01:16:42 +0000 (18:16 -0700)]
vk/vulkan.h: Switch from GetObjectInfo to GetMemoryRequirements
Jason Ekstrand [Wed, 8 Jul 2015 00:22:29 +0000 (17:22 -0700)]
vk: Update memory flushing functions to 130
This involves updating the prototype for FlushMappedMemory, adding
InvalidateMappedMemoryRanges, and removing PinSystemMemory.
Jason Ekstrand [Wed, 8 Jul 2015 00:18:00 +0000 (17:18 -0700)]
vk/vulkan.h: Constify the pFences parameter to ResetFences
Jason Ekstrand [Wed, 8 Jul 2015 00:13:05 +0000 (17:13 -0700)]
vk/vulkan.h: Move the definitions of Create(Framebuffer|RenderPass)
This better matches the 130 header.
Jason Ekstrand [Wed, 8 Jul 2015 00:11:35 +0000 (17:11 -0700)]
vk: Implement the GetRenderAreaGranularity function
At the moment, we're just going to scissor clears so a granularity of 1x1
is all we need.
Jason Ekstrand [Wed, 8 Jul 2015 00:06:10 +0000 (17:06 -0700)]
vk/vulkan.h: Add a PipelineLayout parameter to BindDescriptorSets
Jason Ekstrand [Tue, 7 Jul 2015 23:49:01 +0000 (16:49 -0700)]
vk/vulkan.h: Add a compareEnable parameter to SamplerCreateInfo
Our hardware doesn't actually need this, so adding it is a no-op.
Jason Ekstrand [Tue, 7 Jul 2015 23:42:42 +0000 (16:42 -0700)]
vk/vulkan.h: Remove initialCount from SemaphoreCreateInfo
Jason Ekstrand [Tue, 7 Jul 2015 23:37:43 +0000 (16:37 -0700)]
vk/vulkan.h: Update clear color handling to 130
Jason Ekstrand [Tue, 7 Jul 2015 23:27:06 +0000 (16:27 -0700)]
meta: Use the VkClearColorValue structure for the color attribute
Jason Ekstrand [Tue, 7 Jul 2015 23:22:23 +0000 (16:22 -0700)]
vk/vulkan.h: Remove the pass argument from EndRenderPass
Jason Ekstrand [Tue, 7 Jul 2015 23:15:55 +0000 (16:15 -0700)]
vk/vulkan.h: Rename VertexInputStateInfo to VertexInputStateCreateInfo
Jason Ekstrand [Tue, 7 Jul 2015 22:57:03 +0000 (15:57 -0700)]
vk/vulkan.h: Remove programPointSize
Instead, we auto-detect whether or not your shader writes gl_PointSize. If
it does, we use 1.0, otherwise we take it from the shader.
Chad Versace [Tue, 7 Jul 2015 22:56:12 +0000 (15:56 -0700)]
vk/0.130: Stub vkCmdClear*Attachment() funcs
vkCmdClearColorAttachment
vkCmdClearDepthStencilAttachment
Chad Versace [Tue, 7 Jul 2015 22:57:17 +0000 (15:57 -0700)]
vk/0.130: Define enum VkImageAspectFlagBits
Chad Versace [Tue, 7 Jul 2015 22:55:53 +0000 (15:55 -0700)]
vk/0.130: Define VkRect3D
Chad Versace [Tue, 7 Jul 2015 22:53:35 +0000 (15:53 -0700)]
vk/0.130: Update name of vkCmdClearDepthStencilImage()
Chad Versace [Tue, 7 Jul 2015 22:51:55 +0000 (15:51 -0700)]
vk/0.130: Stub vkCmdExecuteCommands()
Chad Versace [Tue, 7 Jul 2015 22:49:57 +0000 (15:49 -0700)]
vk/0.130: Update vkCmdWaitEvents() signature
Chad Versace [Tue, 7 Jul 2015 22:47:24 +0000 (15:47 -0700)]
vk: Remove unused 'v' param from stub() macro
Chad Versace [Tue, 7 Jul 2015 22:46:19 +0000 (15:46 -0700)]
vk: Stub vkCmdPushConstants() from 0.130 header
Chad Versace [Tue, 7 Jul 2015 22:42:38 +0000 (15:42 -0700)]
vk: Update vkCmdPipelineBarrier to 0.130 header
Chad Versace [Tue, 7 Jul 2015 22:42:04 +0000 (15:42 -0700)]
vk: Add func anv_clear_mask()
A little helper func for inspecting and clearing bitmasks.
Jason Ekstrand [Tue, 7 Jul 2015 21:42:47 +0000 (14:42 -0700)]
vk/vulkan.h: Remove some unused fields.
In particular, the following are removed:
- disableVertexReuse
- clipOrigin
- depthMode
- pointOrigin
- provokingVertex
Jason Ekstrand [Tue, 7 Jul 2015 22:11:56 +0000 (15:11 -0700)]
vk/vulkan.h: Remove the explicit primitive restart index
Unfortunately, this requires some non-trivial changes to the driver. Now
that the primitive restart index isn't given explicitly by the client, we
always use ~0 for everything like D3D does. Unfortunately, our hardware is
awesome and a 32-bit version of ~0 doesn't match any 16-bit values. This
means, we have to set it to either UINT16_MAX or UINT32_MAX depending on
the size of the index type. Since we get the index type from
CmdBindIndexBuffer and the rest of the VF packet from the pipeline, we need
to lazy-emit the VF packet.
Chad Versace [Tue, 7 Jul 2015 22:16:13 +0000 (15:16 -0700)]
vk: Delete some comments not present in 0.130 header
Deleting the comments reduces diff noise.
Chad Versace [Tue, 7 Jul 2015 22:13:01 +0000 (15:13 -0700)]
vk: Pull in remaining 0.130 handle types
This pulls in the definition of VkShaderModule and VkPipelineCache,
which nowhere used yet.
Chad Versace [Tue, 7 Jul 2015 22:10:34 +0000 (15:10 -0700)]
vk: Pull in #defines from 0.130 header
Despite not being used yet, pulling in the macros does diminish the
header diff.
Jason Ekstrand [Tue, 7 Jul 2015 19:37:54 +0000 (12:37 -0700)]
vk/vulkan.h: Rename (min|max)Depth to (min|max)DepthBounds
Jason Ekstrand [Tue, 7 Jul 2015 19:35:32 +0000 (12:35 -0700)]
vk/vulkan.h: Remove client-settable pointSize from DynamicRsState
Jason Ekstrand [Tue, 7 Jul 2015 18:26:26 +0000 (11:26 -0700)]
vk/vulkan.h: Remove UINT8 index buffers
Jason Ekstrand [Tue, 7 Jul 2015 17:37:14 +0000 (10:37 -0700)]
vk/vulkan.h: Re-order the object declarations
Kristian Høgsberg Kristensen [Tue, 7 Jul 2015 05:21:51 +0000 (22:21 -0700)]
vk: Emit 3DSTATE_SAMPLE_MASK
This was missing and was causing the driver to not work with
execlists. Presumably we get a different initial hw context with
execlists enabled, that has sample mask 0 initially.
Set this to 0xffff for now. When we add MS support, we need to take the
value from VkPipelineMsStateCreateInfo::sampleMask.
Kristian Høgsberg Kristensen [Mon, 22 Jun 2015 06:47:10 +0000 (23:47 -0700)]
vk: Pull in new generated headers
The new headers use stdbool for enable/disable fields which
implicitly converts expressions like (flags & 8) to 0 or 1.
Also handles MBO (must-be-one) fields by setting them to one,
corrects a bspec typo (_3DPRIM_LISTSTRIP_ADJ -> LINESTRIP) and
makes a few enum values less clashy.
Chad Versace [Tue, 7 Jul 2015 00:04:13 +0000 (17:04 -0700)]
vk/image: Validate vkCreateImageView more
Exhaustively validate the function input. If it's not validated and
doesn't have an anv_finishme(), then I overlooked it.
Chad Versace [Mon, 6 Jul 2015 23:25:59 +0000 (16:25 -0700)]
vk/image: Add more info to VkImageViewType table
Convert the table from the direct mapping
VkImageViewType -> SurfaceType
into a mapping to an info struct
VkImageViewType -> struct anv_image_view_info
Chad Versace [Mon, 6 Jul 2015 22:51:46 +0000 (15:51 -0700)]
vk: Update VkImageViewType to 0.130.0
This splits 1D and 1D_ARRAY, 2D and 2D_ARRAY, CUBE and CUBE_ARRAY.
The new tokens are unused. This is just a header update.
Chad Versace [Mon, 6 Jul 2015 23:24:28 +0000 (16:24 -0700)]
vk/image: Move validation for vkCreateImageView
Move the validation from anv_CreateImageView() and anv_image_view_init()
to anv_validate_CreateImageView(). No new validation is added.
Jason Ekstrand [Tue, 7 Jul 2015 00:47:18 +0000 (17:47 -0700)]
vk/vulkan.h: Rename VkRect to VkRect2D
Jason Ekstrand [Tue, 7 Jul 2015 00:43:58 +0000 (17:43 -0700)]
vk/vulkan.h: Rename count to arraySize in VkDescriptorSetLayoutBinding
Jason Ekstrand [Tue, 7 Jul 2015 00:37:11 +0000 (17:37 -0700)]
vk/vulkan.h: Remove the Vk(Memory|Semaphor|Image)OpenInfo structs
We already deleted the functions that need them. The structs are just
dangling uselessly.
Jason Ekstrand [Tue, 7 Jul 2015 00:33:43 +0000 (17:33 -0700)]
vk/vulkan.h: Remove VK_MEMORY_PROPERTY_PREFER_HOST_LOCAL_BIT
We weren't doing anything with it, so this is a no-op
Jason Ekstrand [Tue, 7 Jul 2015 00:32:28 +0000 (17:32 -0700)]
vk/vulkan.h: Replace DEVICE_COHERENT_BIT with DEVICE_NON_COHERENT_BIT
Jason Ekstrand [Tue, 7 Jul 2015 00:27:11 +0000 (17:27 -0700)]
vk/vulkan.h: Use the query result bits from revision 130
None of the important bits or names actually changed. It just
added/removed some no-op names.
No functional change.
Jason Ekstrand [Tue, 7 Jul 2015 00:26:29 +0000 (17:26 -0700)]
vk/vulkan.h: One more quick enum refactor clean-up
Jason Ekstrand [Tue, 7 Jul 2015 00:23:46 +0000 (17:23 -0700)]
vk/vulkan.h: Get rid of VERTEX_INPUT_STEP_RATE_DRAW
We never supported it, so no functional change.
Jason Ekstrand [Tue, 7 Jul 2015 00:21:19 +0000 (17:21 -0700)]
vk/vulkan.h: Remove the CLEAR_OPTIMAL image layout
Jason Ekstrand [Tue, 7 Jul 2015 00:18:25 +0000 (17:18 -0700)]
vk: Rename CPU_READ/WRITE_BIT to HOST_READ/WRITE_BIT
Jason Ekstrand [Tue, 7 Jul 2015 00:14:30 +0000 (17:14 -0700)]
vk/vulkan.h: Remove VK_IMAGE_CREATE_CLONEABLE_BIT
Jason Ekstrand [Tue, 7 Jul 2015 00:12:47 +0000 (17:12 -0700)]
vk: Remove SHAREABLE bits
They were removed from the Vulkan API and we don't really use them because
there are no multi-GPU i965 systems.
Jason Ekstrand [Tue, 7 Jul 2015 00:08:11 +0000 (17:08 -0700)]
vk/vulkan.h: Re-order the logic op enums
Jason Ekstrand [Tue, 7 Jul 2015 00:06:02 +0000 (17:06 -0700)]
vk/vulkan.h: Reformat a bunch of enums to match revision 130
In theory, no functional change.
Jason Ekstrand [Mon, 6 Jul 2015 23:43:28 +0000 (16:43 -0700)]
vk: Rename NUM_SHADER_STAGE to SHADER_STAGE_NUM
This is a refactor of more than just the header but it lets us finish
reformating the shader stage enum.
Jason Ekstrand [Mon, 6 Jul 2015 23:41:31 +0000 (16:41 -0700)]
vk: Reformat a bunch of enums
This accounts for a number differences between the generated headers and
the hand-written header. Not all reformatting is done in this commit but
it does make the headers much more diffable.
In theory, no functional change.
Jason Ekstrand [Mon, 6 Jul 2015 23:15:12 +0000 (16:15 -0700)]
vk: Pull the VkResult enum from revision 130
Jason Ekstrand [Mon, 6 Jul 2015 23:11:05 +0000 (16:11 -0700)]
vk: re-arrange enums to match the order in revision 130
Jason Ekstrand [Mon, 6 Jul 2015 22:37:17 +0000 (15:37 -0700)]
vk: Rename a parameter in CmdBindDynamicStateObject
Jason Ekstrand [Mon, 6 Jul 2015 22:34:55 +0000 (15:34 -0700)]
vk: Remove multi-device stuff
Jason Ekstrand [Mon, 6 Jul 2015 22:32:40 +0000 (15:32 -0700)]
vk: Remove ClearDescriptorSets
Jason Ekstrand [Mon, 6 Jul 2015 22:32:27 +0000 (15:32 -0700)]
vk: Remove begin/end descriptor pool update
Jason Ekstrand [Mon, 6 Jul 2015 22:30:05 +0000 (15:30 -0700)]
vk: Remove stub for CloneImageData
Jason Ekstrand [Mon, 6 Jul 2015 22:28:10 +0000 (15:28 -0700)]
vk: Remove the stub support for memory priorities