@@ -3036,6 +3036,62 @@ TEST_F(MemoryAccessPropertiesSharedCrossDeviceCapsTest,
30363036 EXPECT_EQ (expectedSharedCrossDeviceAllocCapabilities, properties.sharedCrossDeviceAllocCapabilities );
30373037}
30383038
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+
30393095using MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test = MultipleDevicesP2PFixture<0 , 0 >;
30403096TEST_F (MultipleDevicesP2PDevice0Access0Atomic0Device1Access0Atomic0Test, WhenCallingGetP2PPropertiesWithBothDevicesHavingNoAccessSupportThenNoSupportIsReturned) {
30413097 L0::Device *device0 = driverHandle->devices [0 ];
0 commit comments