tests: derive XglDescriptorSetObj from xgl_testing::DescriptorSet
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 6ee0d7d..d1c5d10 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -328,41 +328,30 @@
}
void XglDescriptorSetObj::CreateXGLDescriptorSet()
{
- XGL_RESULT err;
+ init(*m_device, xgl_testing::DescriptorSet::create_info(m_nextSlot));
- // Create descriptor set for a uniform resource
- memset(&m_descriptorInfo,0,sizeof(m_descriptorInfo));
- m_descriptorInfo.sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO;
- m_descriptorInfo.slots = m_nextSlot;
+ begin();
+ clear();
- // Create a descriptor set with requested number of slots
- err = xglCreateDescriptorSet( m_device->device(), &m_descriptorInfo, &m_rsrcDescSet );
- ASSERT_XGL_SUCCESS(err);
-
- // Bind memory to the descriptor set
- err = m_device->AllocAndBindGpuMemory(m_rsrcDescSet, "DescriptorSet", &m_descriptor_set_mem);
- ASSERT_XGL_SUCCESS(err);
-
- xglBeginDescriptorSetUpdate( m_rsrcDescSet );
- xglClearDescriptorSetSlots(m_rsrcDescSet, 0, m_nextSlot);
for (int i=0; i<m_memoryViews.size();i++)
{
- xglAttachMemoryViewDescriptors( m_rsrcDescSet, m_memorySlots[i], 1, m_memoryViews[i] );
+ attach(m_memorySlots[i], *m_memoryViews[i]);
}
for (int i=0; i<m_samplers.size();i++)
{
- xglAttachSamplerDescriptors( m_rsrcDescSet, m_samplerSlots[i], 1, &m_samplers[i]->obj() );
+ attach(m_samplerSlots[i], *m_samplers[i]);
}
for (int i=0; i<m_imageViews.size();i++)
{
- xglAttachImageViewDescriptors( m_rsrcDescSet, m_imageSlots[i], 1, m_imageViews[i] );
+ attach(m_imageSlots[i], *m_imageViews[i]);
}
- xglEndDescriptorSetUpdate( m_rsrcDescSet );
+
+ end();
}
XGL_DESCRIPTOR_SET XglDescriptorSetObj::GetDescriptorSetHandle()
{
- return m_rsrcDescSet;
+ return obj();
}
int XglDescriptorSetObj::GetTotalSlots()
@@ -372,44 +361,28 @@
void XglDescriptorSetObj::BindCommandBuffer(XGL_CMD_BUFFER commandBuffer)
{
- XGL_RESULT err;
+ init(*m_device, xgl_testing::DescriptorSet::create_info(m_nextSlot));
- // Create descriptor set for a uniform resource
- memset(&m_descriptorInfo,0,sizeof(m_descriptorInfo));
- m_descriptorInfo.sType = XGL_STRUCTURE_TYPE_DESCRIPTOR_SET_CREATE_INFO;
- m_descriptorInfo.slots = m_nextSlot;
+ begin();
+ clear();
- // Create a descriptor set with requested number of slots
- err = xglCreateDescriptorSet( m_device->device(), &m_descriptorInfo, &m_rsrcDescSet );
- ASSERT_XGL_SUCCESS(err);
-
- // Bind memory to the descriptor set
- err = m_device->AllocAndBindGpuMemory(m_rsrcDescSet, "DescriptorSet", &m_descriptor_set_mem);
- ASSERT_XGL_SUCCESS(err);
-
- xglBeginDescriptorSetUpdate( m_rsrcDescSet );
- xglClearDescriptorSetSlots(m_rsrcDescSet, 0, m_nextSlot);
for (int i=0; i<m_memoryViews.size();i++)
{
- xglAttachMemoryViewDescriptors( m_rsrcDescSet, m_memorySlots[i], 1, m_memoryViews[i] );
+ attach(m_memorySlots[i], *m_memoryViews[i]);
}
for (int i=0; i<m_samplers.size();i++)
{
- xglAttachSamplerDescriptors( m_rsrcDescSet, m_samplerSlots[i], 1, &m_samplers[i]->obj() );
+ attach(m_samplerSlots[i], *m_samplers[i]);
}
for (int i=0; i<m_imageViews.size();i++)
{
- xglAttachImageViewDescriptors( m_rsrcDescSet, m_imageSlots[i], 1, m_imageViews[i] );
+ attach(m_imageSlots[i], *m_imageViews[i]);
}
- xglEndDescriptorSetUpdate( m_rsrcDescSet );
+
+ end();
// bind pipeline, vertex buffer (descriptor set) and WVP (dynamic memory view)
- xglCmdBindDescriptorSet(commandBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, m_rsrcDescSet, 0 );
-}
-
-XglDescriptorSetObj::~XglDescriptorSetObj()
-{
- if (m_rsrcDescSet != XGL_NULL_HANDLE) xglDestroyObject(m_rsrcDescSet);
+ xglCmdBindDescriptorSet(commandBuffer, XGL_PIPELINE_BIND_POINT_GRAPHICS, 0, obj(), 0 );
}
XglTextureObj::XglTextureObj(XglDevice *device)
diff --git a/tests/xglrenderframework.h b/tests/xglrenderframework.h
index 83fac99..35a9013 100644
--- a/tests/xglrenderframework.h
+++ b/tests/xglrenderframework.h
@@ -184,11 +184,10 @@
};
-class XglDescriptorSetObj
+class XglDescriptorSetObj : public xgl_testing::DescriptorSet
{
public:
XglDescriptorSetObj(XglDevice *device);
- ~XglDescriptorSetObj();
void AttachMemoryView(XglConstantBufferObj* constantBuffer);
void AttachSampler( XglSamplerObj* sampler);
void AttachImageView( XglTextureObj* texture);
@@ -199,9 +198,6 @@
XGL_DESCRIPTOR_SLOT_INFO * GetSlotInfo(vector<int>slots, vector<XGL_DESCRIPTOR_SET_SLOT_TYPE>types, vector<void*>objs );
protected:
- XGL_DESCRIPTOR_SET_CREATE_INFO m_descriptorInfo;
- XGL_DESCRIPTOR_SET m_rsrcDescSet;
- XGL_GPU_MEMORY m_descriptor_set_mem;
XglDevice *m_device;
XGL_DESCRIPTOR_SLOT_INFO *m_slotInfo;
int m_nextSlot;