@@ -1857,6 +1857,9 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
18571857 if (itemCount > 0xFFFFFFFFu )
18581858 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," buffer too large" );
18591859
1860+ if (byteStride > 0xFFFFFFFFu )
1861+ throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," stride too large" );
1862+
18601863 geometry->setBuffer (type, slot, format, buffer, byteOffset, byteStride, (unsigned int )itemCount);
18611864 RTC_CATCH_END2 (geometry);
18621865 }
@@ -1871,6 +1874,9 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
18711874 if (itemCount > 0xFFFFFFFFu )
18721875 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," buffer too large" );
18731876
1877+ if (byteStride > 0xFFFFFFFFu )
1878+ throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," stride too large" );
1879+
18741880 Ref<Buffer> buffer = new Buffer (geometry->device , itemCount*byteStride, (char *)ptr + byteOffset);
18751881 geometry->setBuffer (type, slot, format, buffer, 0 , byteStride, (unsigned int )itemCount);
18761882 RTC_CATCH_END2 (geometry);
@@ -1889,6 +1895,9 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
18891895 if (itemCount > 0xFFFFFFFFu )
18901896 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," buffer too large" );
18911897
1898+ if (byteStride > 0xFFFFFFFFu )
1899+ throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," stride too large" );
1900+
18921901 if ((ptr == nullptr ) || (dptr == nullptr ))
18931902 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," host and device pointer may not be NULL pointers when using SYCL devices" );
18941903
@@ -1916,6 +1925,9 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
19161925 if (itemCount > 0xFFFFFFFFu )
19171926 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," buffer too large" );
19181927
1928+ if (byteStride > 0xFFFFFFFFu )
1929+ throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," stride too large" );
1930+
19191931 /* vertex buffers need to get overallocated slightly as elements are accessed using SSE loads */
19201932 size_t bytes = itemCount*byteStride;
19211933 if (type == RTC_BUFFER_TYPE_VERTEX || type == RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE)
@@ -1941,6 +1953,9 @@ RTC_API void rtcSetGeometryTransform(RTCGeometry hgeometry, unsigned int timeSte
19411953 if (itemCount > 0xFFFFFFFFu )
19421954 throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," buffer too large" );
19431955
1956+ if (byteStride > 0xFFFFFFFFu )
1957+ throw_RTCError (RTC_ERROR_INVALID_ARGUMENT," stride too large" );
1958+
19441959 /* vertex buffers need to get overallocated slightly as elements are accessed using SSE loads */
19451960 size_t bytes = itemCount*byteStride;
19461961 if (bufferType == RTC_BUFFER_TYPE_VERTEX || bufferType == RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE)
0 commit comments