@@ -3036,6 +3036,62 @@ TEST_F(MemoryAccessPropertiesSharedCrossDeviceCapsTest,
3036
3036
EXPECT_EQ (expectedSharedCrossDeviceAllocCapabilities, properties.sharedCrossDeviceAllocCapabilities );
3037
3037
}
3038
3038
3039
+ struct MemoryAccessPropertiesMultiDevicesSingleRootDeviceTest : public Test <MultiDeviceFixtureHierarchy> {
3040
+ void SetUp () override {
3041
+ this ->deviceHierarchyMode = NEO::DeviceHierarchyMode::flat;
3042
+ this ->numRootDevices = 1 ;
3043
+ MultiDeviceFixtureHierarchy::setUp ();
3044
+ }
3045
+ };
3046
+ TEST_F (MemoryAccessPropertiesMultiDevicesSingleRootDeviceTest,
3047
+ givenSingleRootAndMultiDevicesWhenCallingGetMemoryAccessPropertiesThenSharedCrossDeviceAccessSupportIsReturned) {
3048
+ L0::Device *device = driverHandle->devices [0 ];
3049
+ ze_device_memory_access_properties_t properties;
3050
+ auto result = device->getMemoryAccessProperties (&properties);
3051
+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
3052
+
3053
+ ze_memory_access_cap_flags_t expectedSharedCrossDeviceAllocCapabilities =
3054
+ ZE_MEMORY_ACCESS_CAP_FLAG_RW | ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT |
3055
+ ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC | ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC;
3056
+ EXPECT_EQ (expectedSharedCrossDeviceAllocCapabilities, properties.sharedCrossDeviceAllocCapabilities );
3057
+ }
3058
+
3059
+ struct MemoryAccessPropertiesMultiDevicesMultiRootDeviceTest : public Test <MultiDeviceFixtureHierarchy> {
3060
+ void SetUp () override {
3061
+ this ->deviceHierarchyMode = NEO::DeviceHierarchyMode::flat;
3062
+ this ->numRootDevices = 2 ;
3063
+ MultiDeviceFixtureHierarchy::setUp ();
3064
+ }
3065
+ };
3066
+ TEST_F (MemoryAccessPropertiesMultiDevicesMultiRootDeviceTest,
3067
+ givenMultiRootAndMultiSubDevicesWhenCallingGetMemoryAccessPropertiesThenSharedCrossDeviceAccessSupportIsNotExposed) {
3068
+ L0::Device *device = driverHandle->devices [0 ];
3069
+ ze_device_memory_access_properties_t properties;
3070
+ auto result = device->getMemoryAccessProperties (&properties);
3071
+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
3072
+
3073
+ ze_memory_access_cap_flags_t expectedSharedCrossDeviceAllocCapabilities = 0 ;
3074
+ EXPECT_EQ (expectedSharedCrossDeviceAllocCapabilities, properties.sharedCrossDeviceAllocCapabilities );
3075
+ }
3076
+
3077
+ struct MemoryAccessPropertiesSingleExposedDeviceTest : public Test <MultiDeviceFixtureHierarchy> {
3078
+ void SetUp () override {
3079
+ this ->deviceHierarchyMode = NEO::DeviceHierarchyMode::composite;
3080
+ this ->numRootDevices = 1 ;
3081
+ MultiDeviceFixtureHierarchy::setUp ();
3082
+ }
3083
+ };
3084
+ TEST_F (MemoryAccessPropertiesSingleExposedDeviceTest,
3085
+ givenSingleExposedDevicesWhenCallingGetMemoryAccessPropertiesThenSharedCrossDeviceAccessSupportIsNotExposed) {
3086
+ L0::Device *device = driverHandle->devices [0 ];
3087
+ ze_device_memory_access_properties_t properties;
3088
+ auto result = device->getMemoryAccessProperties (&properties);
3089
+ EXPECT_EQ (ZE_RESULT_SUCCESS, result);
3090
+
3091
+ ze_memory_access_cap_flags_t expectedSharedCrossDeviceAllocCapabilities = 0 ;
3092
+ EXPECT_EQ (expectedSharedCrossDeviceAllocCapabilities, properties.sharedCrossDeviceAllocCapabilities );
3093
+ }
3094
+
3039
3095
using MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test = MultipleDevicesP2PFixture<0 , 0 >;
3040
3096
TEST_F (MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingNoAccessSupportThenNoSupportIsReturned) {
3041
3097
L0::Device *device0 = driverHandle->devices [0 ];
0 commit comments