mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Memory consistency model optionality (#907)
* Test minimum memory consistency capabilities for a device reporting >= 3.0. Skip tests where unsupported memory consistency capabilities are being requested. * Pass nullptr as program build option. Allows the CTS framework to select an appropriate CL C version. * Removed redundant braces.
This commit is contained in:
@@ -29,7 +29,9 @@ class CBasicTestStore : public CBasicTestMemOrderScope<HostAtomicType, HostDataT
|
||||
public:
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::OldValueCheck;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryOrder;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryScope;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryOrderScopeStr;
|
||||
using CBasicTest<HostAtomicType, HostDataType>::CheckCapabilities;
|
||||
CBasicTestStore(TExplicitAtomicType dataType, bool useSVM) : CBasicTestMemOrderScope<HostAtomicType, HostDataType>(dataType, useSVM)
|
||||
{
|
||||
OldValueCheck(false);
|
||||
@@ -43,6 +45,10 @@ public:
|
||||
if(MemoryOrder() == MEMORY_ORDER_ACQUIRE ||
|
||||
MemoryOrder() == MEMORY_ORDER_ACQ_REL)
|
||||
return 0; //skip test - not applicable
|
||||
|
||||
if (CheckCapabilities(MemoryScope(), MemoryOrder()) == TEST_SKIPPED_ITSELF)
|
||||
return 0; // skip test - not applicable
|
||||
|
||||
return CBasicTestMemOrderScope<HostAtomicType, HostDataType>::ExecuteSingleTest(deviceID, context, queue);
|
||||
}
|
||||
virtual std::string ProgramCore()
|
||||
@@ -198,7 +204,9 @@ class CBasicTestLoad : public CBasicTestMemOrderScope<HostAtomicType, HostDataTy
|
||||
public:
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::OldValueCheck;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryOrder;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryScope;
|
||||
using CBasicTestMemOrderScope<HostAtomicType, HostDataType>::MemoryOrderScopeStr;
|
||||
using CBasicTest<HostAtomicType, HostDataType>::CheckCapabilities;
|
||||
CBasicTestLoad(TExplicitAtomicType dataType, bool useSVM) : CBasicTestMemOrderScope<HostAtomicType, HostDataType>(dataType, useSVM)
|
||||
{
|
||||
OldValueCheck(false);
|
||||
@@ -212,6 +220,10 @@ public:
|
||||
if(MemoryOrder() == MEMORY_ORDER_RELEASE ||
|
||||
MemoryOrder() == MEMORY_ORDER_ACQ_REL)
|
||||
return 0; //skip test - not applicable
|
||||
|
||||
if (CheckCapabilities(MemoryScope(), MemoryOrder()) == TEST_SKIPPED_ITSELF)
|
||||
return 0; // skip test - not applicable
|
||||
|
||||
return CBasicTestMemOrderScope<HostAtomicType, HostDataType>::ExecuteSingleTest(deviceID, context, queue);
|
||||
}
|
||||
virtual std::string ProgramCore()
|
||||
@@ -435,9 +447,11 @@ public:
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::MemoryOrder;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::MemoryOrder2;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::MemoryOrderScope;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::MemoryScope;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::DataType;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::Iterations;
|
||||
using CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::IterationsStr;
|
||||
using CBasicTest<HostAtomicType, HostDataType>::CheckCapabilities;
|
||||
CBasicTestCompareStrong(TExplicitAtomicType dataType, bool useSVM) : CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>(dataType, useSVM)
|
||||
{
|
||||
StartValue(123456);
|
||||
@@ -451,6 +465,13 @@ public:
|
||||
if((MemoryOrder() == MEMORY_ORDER_RELAXED && MemoryOrder2() != MEMORY_ORDER_RELAXED) ||
|
||||
(MemoryOrder() != MEMORY_ORDER_SEQ_CST && MemoryOrder2() == MEMORY_ORDER_SEQ_CST))
|
||||
return 0; // failure argument shall be no stronger than the success
|
||||
|
||||
if (CheckCapabilities(MemoryScope(), MemoryOrder()) == TEST_SKIPPED_ITSELF)
|
||||
return 0; // skip test - not applicable
|
||||
|
||||
if (CheckCapabilities(MemoryScope(), MemoryOrder2()) == TEST_SKIPPED_ITSELF)
|
||||
return 0; // skip test - not applicable
|
||||
|
||||
return CBasicTestMemOrder2Scope<HostAtomicType, HostDataType>::ExecuteSingleTest(deviceID, context, queue);
|
||||
}
|
||||
virtual std::string ProgramCore()
|
||||
|
||||
Reference in New Issue
Block a user