Commit graph

1058 commits

Author SHA1 Message Date
Jason Ekstrand
3130851add anv/x11: Only advertise VK_FORMAT_B8R8G8A8_UNORM
The others don't work at the moment so we shouldn't be advertising them.
2015-10-15 16:16:17 -07:00
Jason Ekstrand
f5eec407ea anv/x11: Treat the pPlatformWindow as a xcb_window_t* instead of xcb_window_t 2015-10-15 15:38:20 -07:00
Jason Ekstrand
03952b1513 anv/device: Add support for combined image and sampler descriptors 2015-10-15 15:17:27 -07:00
Jason Ekstrand
b459b3d82c anv/device: Remove some unneeded anv_finishmes 2015-10-15 15:17:07 -07:00
Jason Ekstrand
ba20569626 anv/device: Make the CreateSemaphore stub return success 2015-10-15 14:34:07 -07:00
Jason Ekstrand
bed7d1e03c anv: Add support for BufferInfo in descriptor sets 2015-10-15 13:45:53 -07:00
Jason Ekstrand
6dc4cad994 anv/cmd_buffer: Add an alloc_surface_state helper 2015-10-15 13:45:07 -07:00
Jason Ekstrand
896c1c65d6 anv: Get rid of the descriptor_set_binding struct
We no longer need it as we have a better way to deal with dynamic offsets.
2015-10-14 19:02:29 -07:00
Jason Ekstrand
42683e3757 anv: Get rid of backend compiler hacks for descriptor sets
Now that we have anv_nir_apply_pipeline_layout, we can hand the backend
compiler intrinsics and texture instructions that use a flat buffer index
just like it wants.  There's no longer any reason for any of these hacks.
2015-10-14 18:38:33 -07:00
Jason Ekstrand
da994f4b7e anv/nir: Rewrite apply_dynamic_offsets to handle the new vk intrinsics 2015-10-14 18:38:33 -07:00
Jason Ekstrand
9c9b7d79c8 anv/nir: Add a pass for applying a applying a pipeline layout to a shader
This new pass lowers the _vk intrinsics which take a (set, binding, index)
tripple to the single-index non-vk intrinsics based on the pipeline layout.
2015-10-14 18:38:33 -07:00
Jason Ekstrand
b37c38c1ca anv: Completely rework descriptor set layouts
This patch reworks a bunch of stuff in the way we do descriptor set
layouts.  Our previous approach had a couple of problems.  First, it was
based on a misunderstanding of arrays in descriptor sets.  Second, it
didn't properly handle descriptor sets where some bindings were missing
stages.  The new apporach should be correct and also makes some operations,
particularly those on the hot-path, a bit easier.

We use the descriptor set layout for four things:

 1) To determine the map from bindings to the actual flattened descriptor
    set in vkUpdateDescriptorSets().

 2) To determine the descriptor <-> binding table entry mapping to use in
    anv_cmd_buffer_flush_descriptor_sets().

 3) To determine the mappings of dynamic indices.

 4) To determine the (set, binding, array index) -> binding table entry
    mapping inside of shaders.

The new approach is directly taylored towards these operations.
2015-10-14 18:38:33 -07:00
Jason Ekstrand
db5a5fcd18 anv/image: Add a basic implementation of GetImageSubresourceLayout 2015-10-13 20:00:17 -07:00
Jason Ekstrand
28ed02588a anv/formats: Use the surface_format_info struct from brw_surface_formats.h
The surface_format_info struct changed in mesa but the copied-and-pasted
version didn't get updated on the last mesa master merge.  This both fixes
the bug and should prevent this in the future.
2015-10-13 15:23:24 -07:00
Jason Ekstrand
fd2ec1c8ad anv/x11: Do something sensible if get_geometry fails in GetSurfaceProperties 2015-10-13 15:10:40 -07:00
Jason Ekstrand
c31f926726 anv/wsi: Add the GetSurfacePresentModesKHR stub
Support has existed in the X11 and Wayland backends for a while but,
somehow, the entrypoint got missed in the API shuffle.
2015-10-13 11:47:03 -07:00
Jason Ekstrand
e21ecb841c anv: Declare/validate the correct API version 2015-10-12 18:25:19 -07:00
Jason Ekstrand
0689a0f0f3 anv/device: Return VK_SUCCESS after setting pCount in QueueFamilyProperties 2015-10-10 15:25:08 -07:00
Kristian Høgsberg Kristensen
fc2a66cfcd Merge ../mesa into vulkan 2015-10-08 17:20:24 -07:00
Jason Ekstrand
48a87f4ba0 anv/queue: Get rid of the serial
This was a remnant of the object tagging implementation we had at one
point.  We haven't used it for a long time so there's no good reason to
keep it around.
2015-10-08 12:16:00 -07:00
Jason Ekstrand
8984559892 vk/0.170.2: Update to the new VK_EXT_KHR_swapchain extensions 2015-10-08 12:11:18 -07:00
Chad Versace
0ca3c8480d vk/0.170.2: Update remaining enums 2015-10-07 11:39:49 -07:00
Chad Versace
f9c948ed00 vk/0.170.2: Update VkResult
Version 0.170.2 removes most of the error enums. In many cases, I had to
replace an error with a less accurate (or even incorrect) one.
In other cases, the error path is replaced with an assertion.
2015-10-07 11:36:51 -07:00
Chad Versace
8dee32e71f vk/0.170: Update VkDescriptorInfo
Ignore the new bufferInfo field with a anv_finishme.
2015-10-07 10:58:55 -07:00
Chad Versace
92e7bd3610 vk/0.170.2: Update vkCreateDescriptorPool
Nothing to do. In Mesa the pool is a stub.
2015-10-07 10:47:55 -07:00
Chad Versace
d48e71ce55 vk/0.170.2: Update VkPhysicalDeviceProperties 2015-10-07 10:36:46 -07:00
Chad Versace
81e1dcc42c vk/0.170.2: Update VkImageFormatProperties 2015-10-07 10:28:30 -07:00
Chad Versace
98c2bb6917 vk/0.170.2: Update VkFormatProperties 2015-10-07 10:15:59 -07:00
Chad Versace
545f5cc6e1 vk/0.170.2: Update VkPhysicalDeviceFeatures 2015-10-07 10:09:39 -07:00
Chad Versace
033a37f591 vk/0.170.2: Update VkPhysicalDeviceLimits 2015-10-07 10:09:31 -07:00
Jason Ekstrand
982466aeff anv/device: Remove some #ifdef'd out code
This was a left-over from the dynamic state update.
2015-10-07 09:45:49 -07:00
Jason Ekstrand
010c6efd65 vk/0.170.2: Make vkUpdateDescriptorSets return void 2015-10-07 09:44:53 -07:00
Jason Ekstrand
1a52bc3039 anv/pipeline: Add support for dynamic state in pipelines 2015-10-07 09:40:49 -07:00
Jason Ekstrand
daf68a9465 vk/0.170.2: Switch to the new dynamic state model 2015-10-07 09:40:49 -07:00
Jason Ekstrand
55fcca306b anv: Add a dynamic state data structure and basic helpers 2015-10-07 09:36:27 -07:00
Jason Ekstrand
941a105954 anv/private: Add a typed_memcpy macro
This is amazingly helpful when copying arrays of things around.
2015-10-07 09:36:27 -07:00
Chad Versace
b1c024a932 vk/meta: Fix -Wstrict-prototypes
In C, functions with no arguments require a void argument.
build_nir_clear_fragment_shader() lacked that.

Fixes:
  anv_meta.c:70:1: warning: function declaration isn't a prototype
  [-Wstrict-prototypes]
2015-10-07 09:10:25 -07:00
Chad Versace
6dea1a9ba1 vk/0.170.2: Merge VkAttachmentView into VkImageView 2015-10-07 09:10:25 -07:00
Chad Versace
03dd72279f vk/image: Fix retrieval of anv_surface for depthstencil aspect
If anv_image_get_surface_for_aspect_mask() is given a combined
depthstencil aspect mask, and the image has a stencil surface but no
depth surface, then return the stencil surface.

Hacks on hacks.
2015-10-07 09:10:25 -07:00
Chad Versace
85ff3cfde3 vk: Drop -Wextra
Eliminates lots of warnings due to anv_meta.c's inclusion of nir.h.

I like the extra warnings, and they should probably get fixed. However,
git-grep reveals that no other Mesa directory uses -Wextra. Building
Vulkan produces a lot of compiler warnings from core Mesa headers that
no other Mesa developer sees, and hence no other Mesa developer will
fix.
2015-10-07 07:28:46 -07:00
Chad Versace
24de3d49ea vk: Embed two surface states in anv_image_view
This prepares for merging VkAttachmentView into VkImageView.  The two
surface states are:

   anv_image_view::color_rt_surface_state:
       RENDER_SURFACE_STATE when using image as a color render target.

   anv_image_view::nonrt_surface_state;
       RENDER_SURFACE_STATE when using image as a non render target.

No Crucible regressions.
2015-10-06 21:22:18 -07:00
Chad Versace
37bf120930 vk/pipeline: Emit MSAA finishme only if samples > 1
If samples == 1, then there's nothing for Mesa to do, and the finishme
message is only noise.
2015-10-06 21:22:18 -07:00
Chad Versace
3fc2b1f325 vk: Remove stale finishme for stencil image views
They don't work completely. But they work well enough to satisfy
Crucible.
2015-10-06 21:22:18 -07:00
Chad Versace
44143a1f46 vk: Add anv_image::usage
It's a copy of VkImageCreateInfo::usage. Will be used for the
VkAttachmentView/VkImageView merge.
2015-10-06 21:22:18 -07:00
Chad Versace
cf603714cb vk/meta: Fix usage flags for image-wrapped-buffers
In make_image_for_buffer(), use VK_IMAGE_USAGE_SAMPLED_BIT when
transferring from the buffer and use VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
when transferring to the buffer.
2015-10-06 21:22:18 -07:00
Chad Versace
d00718104f vk/image: Remove stale anv_asserts for depthstencil attachments
We don't fully handle mipmapped, array depthstencil attachments. But we
handle the well enough for Crucible's miptree tests.
2015-10-06 21:22:18 -07:00
Jason Ekstrand
89eebd889c vk/0.170.2: Fairly trivial enum shuffling 2015-10-06 14:08:08 -07:00
Jason Ekstrand
1e4263b7d2 vk/0.170.2: s/baseArraySlice/baseArrayLayer/ 2015-10-06 14:08:08 -07:00
Chad Versace
d4446a7e58 vk: Merge anv_attachment_view into anv_image_view
This prepares for merging VkAttachmentView into VkImageView.
2015-10-06 12:13:03 -07:00
Chad Versace
6b5ce5daf5 vk: Update comments for anv_image_view
- Document the extent member. It's the extent of the view's base level.
- s/VkAttachmentView/VkImageView/
2015-10-06 12:12:52 -07:00