Bug 14522: Remove VkAttachmentView

https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14522
Several parts of the driver really want an attachment view
so I've included the attachment information in the
intel_img_view structure and initialize both when the
view is created.
Parts of the meta path only need intel_att_view and
I kept that in place.
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 2eed8d8..b530d1f 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -173,7 +173,7 @@
         vkDestroyDynamicViewportState(device(), m_stateViewport);
     }
     while (!m_renderTargets.empty()) {
-        vkDestroyAttachmentView(device(), m_renderTargets.back()->targetView(m_render_target_fmt));
+        vkDestroyImageView(device(), m_renderTargets.back()->targetView(m_render_target_fmt));
         vkDestroyImage(device(), m_renderTargets.back()->image());
         vkFreeMemory(device(), m_renderTargets.back()->memory());
         m_renderTargets.pop_back();
@@ -307,16 +307,16 @@
     InitRenderTarget(targets, NULL);
 }
 
-void VkRenderFramework::InitRenderTarget(VkAttachmentView *dsBinding)
+void VkRenderFramework::InitRenderTarget(VkImageView *dsBinding)
 {
     InitRenderTarget(1, dsBinding);
 }
 
-void VkRenderFramework::InitRenderTarget(uint32_t targets, VkAttachmentView *dsBinding)
+void VkRenderFramework::InitRenderTarget(uint32_t targets, VkImageView *dsBinding)
 {
     std::vector<VkAttachmentDescription> attachments;
     std::vector<VkAttachmentReference> color_references;
-    std::vector<VkAttachmentView> bindings;
+    std::vector<VkImageView> bindings;
     attachments.reserve(targets + 1); // +1 for dsBinding
     color_references.reserve(targets);
     bindings.reserve(targets + 1);     // +1 for dsBinding
@@ -340,7 +340,7 @@
     VkClearValue clear = {};
     clear.color = m_clear_color;
 
-    VkAttachmentView bind = {};
+    VkImageView bind = {};
 
     for (uint32_t i = 0; i < targets; i++) {
         attachments.push_back(att);
@@ -1576,7 +1576,7 @@
     return m_initialized;
 }
 
-VkAttachmentView* VkDepthStencilObj::BindInfo()
+VkImageView* VkDepthStencilObj::BindInfo()
 {
     return &m_attachmentBindInfo;
 }
@@ -1584,7 +1584,7 @@
 void VkDepthStencilObj::Init(VkDeviceObj *device, int32_t width, int32_t height, VkFormat format)
 {
     VkImageCreateInfo image_info;
-    VkAttachmentViewCreateInfo view_info;
+    VkImageViewCreateInfo view_info;
 
     m_device = device;
     m_initialized = true;
@@ -1608,16 +1608,18 @@
     image_info.pQueueFamilyIndices = NULL;
     init(*m_device, image_info);
 
-    view_info.sType = VK_STRUCTURE_TYPE_ATTACHMENT_VIEW_CREATE_INFO;
+    view_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
     view_info.pNext = NULL;
     view_info.image = VK_NULL_HANDLE;
-    view_info.mipLevel = 0;
-    view_info.baseArraySlice = 0;
-    view_info.arraySize = 1;
+    view_info.subresourceRange.aspect = VK_IMAGE_ASPECT_DEPTH;
+    view_info.subresourceRange.baseMipLevel = 0;
+    view_info.subresourceRange.mipLevels = 1;
+    view_info.subresourceRange.baseArraySlice = 0;
+    view_info.subresourceRange.arraySize = 1;
     view_info.flags = 0;
     view_info.format = m_depth_stencil_fmt;
     view_info.image = handle();
-    m_attachmentView.init(*m_device, view_info);
+    m_imageView.init(*m_device, view_info);
 
-    m_attachmentBindInfo = m_attachmentView.handle();
+    m_attachmentBindInfo = m_imageView.handle();
 }
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index a50fab9..f0f5c11 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -57,14 +57,14 @@
     VkDepthStencilObj();
     void Init(VkDeviceObj *device, int32_t width, int32_t height, VkFormat format);
     bool Initialized();
-    VkAttachmentView* BindInfo();
+    VkImageView* BindInfo();
 
 protected:
     VkDeviceObj                        *m_device;
     bool                                m_initialized;
-    vk_testing::AttachmentView          m_attachmentView;
+    vk_testing::ImageView               m_imageView;
     VkFormat                            m_depth_stencil_fmt;
-    VkAttachmentView                    m_attachmentBindInfo;
+    VkImageView                         m_attachmentBindInfo;
 };
 
 class VkCommandBufferObj;
@@ -84,8 +84,8 @@
     void InitViewport();
     void InitRenderTarget();
     void InitRenderTarget(uint32_t targets);
-    void InitRenderTarget(VkAttachmentView *dsBinding);
-    void InitRenderTarget(uint32_t targets, VkAttachmentView *dsBinding);
+    void InitRenderTarget(VkImageView *dsBinding);
+    void InitRenderTarget(uint32_t targets, VkImageView *dsBinding);
     void InitFramework();
     void InitFramework(
             std::vector<const char *> instance_layer_names,
@@ -292,19 +292,21 @@
         return handle();
     }
 
-    VkAttachmentView targetView(VkFormat format)
+    VkImageView targetView(VkFormat format)
     {
         if (!m_targetView.initialized())
         {
-            VkAttachmentViewCreateInfo createView = {
-                VK_STRUCTURE_TYPE_ATTACHMENT_VIEW_CREATE_INFO,
-                VK_NULL_HANDLE,
-                handle(),
-                format,
-                0,
-                0,
-                1
-            };
+            VkImageViewCreateInfo createView = {};
+            createView.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
+            createView.image = handle();
+            createView.viewType =  VK_IMAGE_VIEW_TYPE_2D;
+            createView.format = format;
+            createView.channels.r = VK_CHANNEL_SWIZZLE_R;
+            createView.channels.g = VK_CHANNEL_SWIZZLE_G;
+            createView.channels.b = VK_CHANNEL_SWIZZLE_B;
+            createView.channels.a = VK_CHANNEL_SWIZZLE_A;
+            createView.subresourceRange = {VK_IMAGE_ASPECT_COLOR, 0, 1, 0, 1};
+            createView.flags = 0;
             m_targetView.init(*m_device, createView);
         }
         return m_targetView.handle();
@@ -333,7 +335,7 @@
 protected:
     VkDeviceObj                        *m_device;
 
-    vk_testing::AttachmentView          m_targetView;
+    vk_testing::ImageView               m_targetView;
     VkDescriptorInfo                    m_descriptorInfo;
 };
 
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 6705073..f5ee736 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -618,13 +618,6 @@
     NON_DISPATCHABLE_HANDLE_INIT(vkCreateImageView, dev, &info);
 }
 
-NON_DISPATCHABLE_HANDLE_DTOR(AttachmentView, vkDestroyAttachmentView)
-
-void AttachmentView::init(const Device &dev, const VkAttachmentViewCreateInfo &info)
-{
-    NON_DISPATCHABLE_HANDLE_INIT(vkCreateAttachmentView, dev, &info);
-}
-
 NON_DISPATCHABLE_HANDLE_DTOR(ShaderModule, vkDestroyShaderModule)
 
 void ShaderModule::init(const Device &dev, const VkShaderModuleCreateInfo &info)
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index b27198f..57717d5 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -45,7 +45,6 @@
 class BufferView;
 class Image;
 class ImageView;
-class ColorAttachmentView;
 class DepthStencilView;
 class Shader;
 class Pipeline;
@@ -448,15 +447,6 @@
     void init(const Device &dev, const VkImageViewCreateInfo &info);
 };
 
-//class AttachmentView : public DerivedObject<VkAttachmentView, Object, VK_OBJECT_TYPE_ATTACHMENT_VIEW> {
-class AttachmentView : public internal::NonDispHandle<VkAttachmentView> {
-public:
-    ~AttachmentView();
-
-    // vkCreateAttachmentView()
-    void init(const Device &dev, const VkAttachmentViewCreateInfo &info);
-};
-
 class ShaderModule : public internal::NonDispHandle<VkShaderModule> {
 public:
     ~ShaderModule();
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index 73dd66d..fc1f163 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -90,7 +90,7 @@
 typedef struct _SwapChainBuffers {
     VkImage image;
     VkCmdBuffer cmd;
-    VkAttachmentView view;
+    VkImageView view;
 } SwapChainBuffers;
 
 class TestFrameworkVkPresent
@@ -915,19 +915,21 @@
     assert(m_buffers);
 
     for (i = 0; i < m_swapChainImageCount; i++) {
-        VkAttachmentViewCreateInfo color_attachment_view = {};
-        color_attachment_view.sType = VK_STRUCTURE_TYPE_ATTACHMENT_VIEW_CREATE_INFO;
-        color_attachment_view.pNext = NULL;
-        color_attachment_view.format = m_format;
-        color_attachment_view.mipLevel = 0;
-        color_attachment_view.baseArraySlice = 0;
-        color_attachment_view.arraySize = 1;
+        VkImageViewCreateInfo color_image_view = {};
+        color_image_view.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
+        color_image_view.pNext = NULL;
+        color_image_view.format = m_format;
+        color_image_view.subresourceRange.aspect = VK_IMAGE_ASPECT_DEPTH;
+        color_image_view.subresourceRange.baseMipLevel = 0;
+        color_image_view.subresourceRange.mipLevels = 1;
+        color_image_view.subresourceRange.baseArraySlice = 0;
+        color_image_view.subresourceRange.arraySize = 1;
 
         m_buffers[i].image = swapChainImages[i];
 
-        color_attachment_view.image = m_buffers[i].image;
-        err = vkCreateAttachmentView(m_device.handle(),
-                &color_attachment_view, &m_buffers[i].view);
+        color_image_view.image = m_buffers[i].image;
+        err = vkCreateImageView(m_device.handle(),
+                &color_image_view, &m_buffers[i].view);
         assert(!err);
     }
 }