Skip to content

Commit f9a97cb

Browse files
Set CAPTURE flag in fillExecObject
Resolves: NEO-5026 Change-Id: I132d5f1c02edf8e595d31e08029fb32ccbd6d307 Signed-off-by: Mateusz Hoppe <[email protected]>
1 parent e4adb7e commit f9a97cb

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

opencl/test/unit_test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ function(neo_copy_test_files_with_revision target product revision_id)
190190
DEPENDS ${NEO_SOURCE_DIR}/opencl/test/unit_test/test_files
191191
)
192192
add_dependencies(${target} copy_compiler_files)
193-
set_target_properties(${target} PROPERTIES FOLDER "${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER}/${product}/${revision_id}}")
193+
set_target_properties(${target} PROPERTIES FOLDER "${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER}/${product}/${revision_id}")
194194
endfunction()
195195

196196
add_dependencies(unit_tests

opencl/test/unit_test/os_interface/linux/drm_buffer_object_tests.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,3 +430,15 @@ TEST(DrmBufferObject, whenMarkForCapturedCalledThenIsMarkedForCaptureReturnsTrue
430430
bo.markForCapture();
431431
EXPECT_TRUE(bo.isMarkedForCapture());
432432
}
433+
434+
TEST_F(DrmBufferObjectTest, givenBoMarkedForCaptureWhenFillingExecObjectThenCaptureFlagIsSet) {
435+
drm_i915_gem_exec_object2 execObject;
436+
437+
memset(&execObject, 0, sizeof(execObject));
438+
bo->markForCapture();
439+
bo->setAddress(0x45000);
440+
bo->setSize(0x1000);
441+
bo->fillExecObject(execObject, osContext.get(), 0, 1);
442+
443+
EXPECT_TRUE(execObject.flags & EXEC_OBJECT_CAPTURE);
444+
}

shared/source/os_interface/linux/drm_buffer_object.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ void BufferObject::fillExecObject(drm_i915_gem_exec_object2 &execObject, OsConte
115115
execObject.alignment = 0;
116116
execObject.offset = this->gpuAddress;
117117
execObject.flags = EXEC_OBJECT_PINNED | EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
118+
if (this->isMarkedForCapture()) {
119+
execObject.flags |= EXEC_OBJECT_CAPTURE;
120+
}
118121
execObject.rsvd1 = drmContextId;
119122
execObject.rsvd2 = 0;
120123

0 commit comments

Comments
 (0)