Skip to content

Commit 0b9673f

Browse files
Fznamznonvladimirlaz
authored andcommitted
[SYCL] Implement buffer::get_access with range and offset
Signed-off-by: Mariya Podchishchaeva <[email protected]>
1 parent 55b8dce commit 0b9673f

File tree

3 files changed

+36
-14
lines changed

3 files changed

+36
-14
lines changed

sycl/include/CL/sycl/accessor.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ class accessor
763763
#ifdef __SYCL_DEVICE_ONLY__
764764
; // This ctor can't be used in device code, so no need to define it.
765765
#else // !__SYCL_DEVICE_ONLY__
766-
: __impl(detail::getSyclObjImpl(bufferRef)->BufPtr, Range,
766+
: __impl((dataT *)detail::getSyclObjImpl(bufferRef)->BufPtr, Range,
767767
bufferRef.get_range(), Offset) {
768768
auto BufImpl = detail::getSyclObjImpl(bufferRef);
769769
if (AccessTarget == access::target::host_buffer) {

sycl/include/CL/sycl/buffer.hpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,22 @@ class buffer {
153153
return impl->template get_access<T, dimensions, mode>(*this);
154154
}
155155

156-
// template <access::mode mode, access::target target =
157-
// access::target::global_buffer> accessor<T, dimensions, mode, target,
158-
// access::placeholder::false_t> get_access( handler &commandGroupHandler,
159-
// range<dimensions> accessRange, id<dimensions> accessOffset = {}) {
160-
// return impl->get_access(commandGroupHandler, accessRange,
161-
// accessOffset);
162-
// }
156+
template <access::mode mode,
157+
access::target target = access::target::global_buffer>
158+
accessor<T, dimensions, mode, target, access::placeholder::false_t>
159+
get_access(handler &commandGroupHandler, range<dimensions> accessRange,
160+
id<dimensions> accessOffset = {}) {
161+
return impl->template get_access<T, dimensions, mode, target>(
162+
*this, commandGroupHandler, accessRange, accessOffset);
163+
}
163164

164-
// template <access::mode mode>
165-
// accessor<T, dimensions, mode, access::target::host_buffer,
166-
// access::placeholder::false_t> get_access( range<dimensions> accessRange,
167-
// id<dimensions> accessOffset = {}) {
168-
// return impl->get_access(accessRange, accessOffset);
169-
// }
165+
template <access::mode mode>
166+
accessor<T, dimensions, mode, access::target::host_buffer,
167+
access::placeholder::false_t>
168+
get_access(range<dimensions> accessRange, id<dimensions> accessOffset = {}) {
169+
return impl->template get_access<T, dimensions, mode>(*this, accessRange,
170+
accessOffset);
171+
}
170172

171173
template <typename Destination = std::nullptr_t>
172174
void set_final_data(Destination finalData = nullptr) {

sycl/include/CL/sycl/detail/buffer_impl.hpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,26 @@ template <typename AllocatorT> class buffer_impl {
206206
access::placeholder::false_t>(Buffer);
207207
}
208208

209+
template <typename T, int dimensions, access::mode mode,
210+
access::target target = access::target::global_buffer>
211+
accessor<T, dimensions, mode, target, access::placeholder::false_t>
212+
get_access(buffer<T, dimensions, AllocatorT> &Buffer,
213+
handler &commandGroupHandler, range<dimensions> accessRange,
214+
id<dimensions> accessOffset) {
215+
return accessor<T, dimensions, mode, target, access::placeholder::false_t>(
216+
Buffer, commandGroupHandler, accessRange, accessOffset);
217+
}
218+
219+
template <typename T, int dimensions, access::mode mode>
220+
accessor<T, dimensions, mode, access::target::host_buffer,
221+
access::placeholder::false_t>
222+
get_access(buffer<T, dimensions, AllocatorT> &Buffer,
223+
range<dimensions> accessRange, id<dimensions> accessOffset) {
224+
return accessor<T, dimensions, mode, access::target::host_buffer,
225+
access::placeholder::false_t>(Buffer, accessRange,
226+
accessOffset);
227+
}
228+
209229
public:
210230
void moveMemoryTo(QueueImplPtr Queue, std::vector<cl::sycl::event> DepEvents,
211231
EventImplPtr Event);

0 commit comments

Comments
 (0)