#include "vktTestCaseUtil.hpp"
#include "vktTestGroupUtil.hpp"
#include "vktExternalMemoryUtil.hpp"
+#include "vktCustomInstancesDevices.hpp"
#include "vkPlatform.hpp"
#include "vkCmdUtil.hpp"
#include "vkObjUtil.hpp"
#include "vkQueryUtil.hpp"
#include "vkRefUtil.hpp"
#include "vkBuilderUtil.hpp"
+#include "tcuCommandLine.hpp"
#include "deUniquePtr.hpp"
#include "deSharedPtr.hpp"
#include "deRandom.hpp"
const VkInstance instance = context.getInstance();
const InstanceInterface& instanceDriver = context.getInstanceInterface();
const VkPhysicalDevice physicalDevice = context.getPhysicalDevice();
+ const auto useValidation = context.getTestContext().getCommandLine().isValidationEnabled();
// Create a device with extension enabled and a queue with a family which supports the buffer marker extension
const std::vector<VkQueueFamilyProperties> queueFamilyProperties = getPhysicalDeviceQueueFamilyProperties(instanceDriver, physicalDevice);
&context.getDeviceFeatures(), // const VkPhysicalDeviceFeatures* pEnabledFeatures;
};
- wd.logicalDevice = createDevice(vkp, instance, instanceDriver, physicalDevice, &deviceInfo);
+ wd.logicalDevice = createCustomDevice(useValidation, vkp, instance, instanceDriver, physicalDevice, &deviceInfo);
wd.deviceDriver = MovePtr<DeviceDriver>(new DeviceDriver(vkp, instance, *wd.logicalDevice));
wd.allocator = MovePtr<Allocator>(new SimpleAllocator(*wd.deviceDriver, *wd.logicalDevice, getPhysicalDeviceMemoryProperties(instanceDriver, physicalDevice)));
wd.queueFamilyIdx = queueCreateInfo.queueFamilyIndex;
TCU_THROW(NotSupportedError, "At least Vulkan 1.2 required to run test");
}
-void createDevice (Context& context, void* pNext, const char* const* ppEnabledExtensionNames, deUint32 enabledExtensionCount)
+void createTestDevice (Context& context, void* pNext, const char* const* ppEnabledExtensionNames, deUint32 enabledExtensionCount)
{
const PlatformInterface& platformInterface = context.getPlatformInterface();
+ const auto validationEnabled = context.getTestContext().getCommandLine().isValidationEnabled();
const Unique<VkInstance> instance (createDefaultInstance(platformInterface, context.getUsedApiVersion()));
const InstanceDriver instanceDriver (platformInterface, instance.get());
const VkPhysicalDevice physicalDevice = chooseDevice(instanceDriver, instance.get(), context.getTestContext().getCommandLine());
ppEnabledExtensionNames, // const char* const* ppEnabledExtensionNames;
DE_NULL, // const VkPhysicalDeviceFeatures* pEnabledFeatures;
};
- const Unique<VkDevice> device (createDevice(platformInterface, *instance, instanceDriver, physicalDevice, &deviceCreateInfo));
+ const Unique<VkDevice> device (createCustomDevice(validationEnabled, platformInterface, *instance, instanceDriver, physicalDevice, &deviceCreateInfo));
const DeviceDriver deviceDriver (platformInterface, instance.get(), device.get());
const VkQueue queue = getDeviceQueue(deviceDriver, *device, queueFamilyIndex, queueIndex);
if (featureDependencyTable[featureDependencyTableNdx].featurePtr == featurePtr)
featureDependencyTable[featureDependencyTableNdx].dependOnPtr[0] = DE_TRUE;
- createDevice(context, &features2, DE_NULL, 0u);
+ createTestDevice(context, &features2, DE_NULL, 0u);
}
}
if (featureDependencyTable[featureDependencyTableNdx].featurePtr == featurePtr)
featureDependencyTable[featureDependencyTableNdx].dependOnPtr[0] = DE_TRUE;
- createDevice(context, &features2, &extStringPtr, (extStringPtr == DE_NULL) ? 0u : 1u );
+ createTestDevice(context, &features2, &extStringPtr, (extStringPtr == DE_NULL) ? 0u : 1u );
}
}
}
#include "vktDrawConcurrentTests.hpp"
+#include "vktCustomInstancesDevices.hpp"
#include "vktTestCaseUtil.hpp"
#include "vktDrawTestCaseUtil.hpp"
#include "../compute/vktComputeTestsUtil.hpp"
const deUint32 numValues = 1024;
const InstanceInterface& instance = m_context.getInstanceInterface();
const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ const auto validation = m_context.getTestContext().getCommandLine().isValidationEnabled();
tcu::TestLog& log = m_context.getTestContext().getLog();
Move<VkDevice> computeDevice;
std::vector<VkQueueFamilyProperties> queueFamilyProperties;
deviceInfo.queueCreateInfoCount = 1;
deviceInfo.pQueueCreateInfos = &queueInfos;
- computeDevice = createDevice(m_context.getPlatformInterface(), m_context.getInstance(), instance, physicalDevice, &deviceInfo);
+ computeDevice = createCustomDevice(validation, m_context.getPlatformInterface(), m_context.getInstance(), instance, physicalDevice, &deviceInfo);
vk.getDeviceQueue(*computeDevice, computeQueue.queueFamilyIndex, 0, &computeQueue.queue);
class BaseAllocateTestInstance : public TestInstance
{
public:
- BaseAllocateTestInstance (Context& context, bool useDeviceGroups)
+ BaseAllocateTestInstance (Context& context, bool useDeviceGroups)
: TestInstance (context)
, m_useDeviceGroups (useDeviceGroups)
, m_subsetAllocationAllowed (false)
if (m_useDeviceGroups)
createDeviceGroup();
else
- createDevice();
+ createTestDevice();
m_allocFlagsInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR;
m_allocFlagsInfo.pNext = DE_NULL;
m_allocFlagsInfo.deviceMask = 0;
}
- void createDevice (void);
+ void createTestDevice (void);
void createDeviceGroup (void);
const vk::DeviceInterface& getDeviceInterface (void) { return m_useDeviceGroups ? *m_deviceDriver : m_context.getDeviceInterface(); }
vk::VkDevice getDevice (void) { return m_logicalDevice.get();}
de::MovePtr<vk::DeviceDriver> m_deviceDriver;
};
-void BaseAllocateTestInstance::createDevice (void)
+void BaseAllocateTestInstance::createTestDevice (void)
{
VkInstance instance (m_context.getInstance());
InstanceDriver instanceDriver (m_context.getPlatformInterface(), instance);
#include "vktTestCase.hpp"
#include "vktTestGroupUtil.hpp"
+#include "vktCustomInstancesDevices.hpp"
#include "vkCmdUtil.hpp"
#include "vkObjUtil.hpp"
#include "vkBuilderUtil.hpp"
#include "vkRayTracingUtil.hpp"
+#include "tcuCommandLine.hpp"
+
namespace vkt
{
namespace RayTracing
const InstanceInterface& vki = m_context.getInstanceInterface();
const VkInstance instance = m_context.getInstance();
const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ const auto validationEnabled = m_context.getTestContext().getCommandLine().isValidationEnabled();
VkQueue queue = DE_NULL;
deUint32 queueFamilyIndex = NO_MATCH_FOUND;
deviceInfo.pEnabledFeatures = DE_NULL;
deviceInfo.queueCreateInfoCount = 1;
deviceInfo.pQueueCreateInfos = &queueInfo;
- Move<VkDevice> testDevice = createDevice(vkp, m_context.getInstance(), vki, physicalDevice, &deviceInfo);
+ Move<VkDevice> testDevice = createCustomDevice(validationEnabled, vkp, m_context.getInstance(), vki, physicalDevice, &deviceInfo);
VkDevice device = *testDevice;
DeviceDriver vkd (vkp, instance, device);
#include "vktTestCaseUtil.hpp"
#include "vktSynchronizationUtil.hpp"
#include "vktExternalMemoryUtil.hpp"
+#include "vktCustomInstancesDevices.hpp"
#include "vkBarrierUtil.hpp"
#include "vkDefs.hpp"
#include "vkTypeUtil.hpp"
#include "tcuTestLog.hpp"
+#include "tcuCommandLine.hpp"
#include "deRandom.hpp"
#include "deThread.hpp"
VK_CHECK(vk.signalSemaphore(device, &ssi));
}
-Move<VkDevice> createDevice (const Context& context)
+Move<VkDevice> createTestDevice (const Context& context)
{
const float priority = 0.0f;
const std::vector<VkQueueFamilyProperties> queueFamilyProperties = getPhysicalDeviceQueueFamilyProperties(context.getInstanceInterface(), context.getPhysicalDevice());
0u
};
- return createDevice(context.getPlatformInterface(), context.getInstance(), context.getInstanceInterface(), context.getPhysicalDevice(), &createInfo);
+ const auto validation = context.getTestContext().getCommandLine().isValidationEnabled();
+ return createCustomDevice(validation, context.getPlatformInterface(), context.getInstance(), context.getInstanceInterface(), context.getPhysicalDevice(), &createInfo);
}
catch (const vk::Error& error)
{
class SingletonDevice
{
SingletonDevice (const Context& context)
- : m_logicalDevice (createDevice(context))
+ : m_logicalDevice (createTestDevice(context))
{
}
#include "vktTestCaseUtil.hpp"
#include "vktSynchronizationUtil.hpp"
#include "vktExternalMemoryUtil.hpp"
+#include "vktCustomInstancesDevices.hpp"
#include "vkBarrierUtil.hpp"
#include "vkDefs.hpp"
#include "vkBufferWithMemory.hpp"
#include "tcuTestLog.hpp"
+#include "tcuCommandLine.hpp"
#include "deClock.h"
#include "deRandom.hpp"
return infos;
}
-Move<VkDevice> createDevice(const Context& context, SynchronizationType type)
+Move<VkDevice> createTestDevice(const Context& context, SynchronizationType type)
{
const std::vector<VkQueueFamilyProperties> queueFamilyProperties = getPhysicalDeviceQueueFamilyProperties(context.getInstanceInterface(), context.getPhysicalDevice());
std::vector<VkDeviceQueueCreateInfo> queueCreateInfos = getQueueCreateInfo(queueFamilyProperties);
queueCreateInfo.pQueuePriorities = &(*queuePriorities.back().get())[0];
}
- return createDevice(context.getPlatformInterface(), context.getInstance(),
- context.getInstanceInterface(), context.getPhysicalDevice(), &deviceInfo);
+ const auto validation = context.getTestContext().getCommandLine().isValidationEnabled();
+
+ return createCustomDevice(validation, context.getPlatformInterface(), context.getInstance(),
+ context.getInstanceInterface(), context.getPhysicalDevice(), &deviceInfo);
}
class SingletonDevice
{
SingletonDevice (const Context& context, SynchronizationType type)
- : m_logicalDevice (createDevice(context, type))
+ : m_logicalDevice (createTestDevice(context, type))
{
}
return 0;
}
-Move<VkDevice> createDevice (const vk::Platform& platform,
- const PlatformInterface& vkp,
- const VkInstance instance,
- const InstanceInterface& vki,
- VkPhysicalDevice physicalDevice,
- const Extensions& supportedExtensions,
- const deUint32 queueFamilyIndex,
- bool validationEnabled,
- const VkAllocationCallbacks* pAllocator = DE_NULL)
+Move<VkDevice> createTestDevice (const vk::Platform& platform,
+ const PlatformInterface& vkp,
+ const VkInstance instance,
+ const InstanceInterface& vki,
+ VkPhysicalDevice physicalDevice,
+ const Extensions& supportedExtensions,
+ const deUint32 queueFamilyIndex,
+ bool validationEnabled,
+ const VkAllocationCallbacks* pAllocator = DE_NULL)
{
const float queuePriorities[] = { 1.0f };
bool displayAvailable = true;
, m_queueFamilyIndex (chooseQueueFamilyIndex(m_vki, m_physicalDevice, m_surface))
, m_deviceExtensions (enumerateDeviceExtensionProperties(m_vki, m_physicalDevice, DE_NULL))
- , m_device (createDevice(context.getTestContext().getPlatform().getVulkanPlatform(), m_vkp, m_instance, m_vki, m_physicalDevice, m_deviceExtensions, m_queueFamilyIndex, context.getTestContext().getCommandLine().isValidationEnabled()))
+ , m_device (createTestDevice(context.getTestContext().getPlatform().getVulkanPlatform(), m_vkp, m_instance, m_vki, m_physicalDevice, m_deviceExtensions, m_queueFamilyIndex, context.getTestContext().getCommandLine().isValidationEnabled()))
, m_vkd (m_vkp, m_instance, *m_device)
, m_queue (getDeviceQueue(m_vkd, *m_device, m_queueFamilyIndex, 0u))