anv/blit2d: Remove sampler from pipeline
authorNanley Chery <nanley.g.chery@intel.com>
Fri, 11 Mar 2016 02:25:10 +0000 (18:25 -0800)
committerNanley Chery <nanley.g.chery@intel.com>
Wed, 16 Mar 2016 17:57:00 +0000 (10:57 -0700)
Since we're using texelFetch with a sampled image, a sampler is no
longer needed. This agrees with the Vulkan Spec section 13.2.4
Descriptor Set Updates:

sampler is a sampler handle, and is used in descriptor updates for types
VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
if the binding being updated does not use immutable samplers.

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/intel/vulkan/anv_meta_blit2d.c

index 839ab02c90408e3b36988142400b72204f8ff490..4fab5d1b3dd9c5f2f88e996398eab01998ddd61f 100644 (file)
@@ -132,14 +132,6 @@ meta_emit_blit2d(struct anv_cmd_buffer *cmd_buffer,
          sizeof(struct anv_vue_header),
       });
 
-   VkSampler sampler;
-   ANV_CALL(CreateSampler)(anv_device_to_handle(device),
-      &(VkSamplerCreateInfo) {
-         .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
-         .magFilter = VK_FILTER_NEAREST,
-         .minFilter = VK_FILTER_NEAREST,
-      }, &cmd_buffer->pool->alloc, &sampler);
-
    VkDescriptorPool desc_pool;
    anv_CreateDescriptorPool(anv_device_to_handle(device),
       &(const VkDescriptorPoolCreateInfo) {
@@ -150,7 +142,7 @@ meta_emit_blit2d(struct anv_cmd_buffer *cmd_buffer,
          .poolSizeCount = 1,
          .pPoolSizes = (VkDescriptorPoolSize[]) {
             {
-               .type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+               .type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
                .descriptorCount = 1
             },
          }
@@ -174,10 +166,10 @@ meta_emit_blit2d(struct anv_cmd_buffer *cmd_buffer,
             .dstBinding = 0,
             .dstArrayElement = 0,
             .descriptorCount = 1,
-            .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+            .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
             .pImageInfo = (VkDescriptorImageInfo[]) {
                {
-                  .sampler = sampler,
+                  .sampler = NULL,
                   .imageView = anv_image_view_to_handle(src_iview),
                   .imageLayout = VK_IMAGE_LAYOUT_GENERAL,
                },
@@ -242,8 +234,6 @@ meta_emit_blit2d(struct anv_cmd_buffer *cmd_buffer,
     */
    anv_DestroyDescriptorPool(anv_device_to_handle(device),
                              desc_pool, &cmd_buffer->pool->alloc);
-   anv_DestroySampler(anv_device_to_handle(device), sampler,
-                      &cmd_buffer->pool->alloc);
    anv_DestroyFramebuffer(anv_device_to_handle(device), fb,
                           &cmd_buffer->pool->alloc);
 }
@@ -593,7 +583,7 @@ anv_device_init_meta_blit2d_state(struct anv_device *device)
       .pBindings = (VkDescriptorSetLayoutBinding[]) {
          {
             .binding = 0,
-            .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+            .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
             .descriptorCount = 1,
             .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
             .pImmutableSamplers = NULL