MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / nb_ndarray_getbuffer

Function nb_ndarray_getbuffer

Source/Falcor/Utils/Scripting/ndarray.cpp:144–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142}
143
144int nb_ndarray_getbuffer(PyObject* exporter, Py_buffer* view, int)
145{
146 nb_ndarray* self = (nb_ndarray*)exporter;
147
148 dlpack::dltensor& t = self->th->ndarray->dltensor;
149
150 if (t.device.device_type != device::cpu::value)
151 {
152 PyErr_SetString(
153 PyExc_BufferError,
154 "Only CPU-allocated ndarrays can be "
155 "accessed via the buffer protocol!"
156 );
157 return -1;
158 }
159
160 const char* format = nullptr;
161 switch ((dlpack::dtype_code)t.dtype.code)
162 {
163 case dlpack::dtype_code::Int:
164 switch (t.dtype.bits)
165 {
166 case 8:
167 format = "b";
168 break;
169 case 16:
170 format = "h";
171 break;
172 case 32:
173 format = "i";
174 break;
175 case 64:
176 format = "q";
177 break;
178 }
179 break;
180
181 case dlpack::dtype_code::UInt:
182 switch (t.dtype.bits)
183 {
184 case 8:
185 format = "B";
186 break;
187 case 16:
188 format = "H";
189 break;
190 case 32:
191 format = "I";
192 break;
193 case 64:
194 format = "Q";
195 break;
196 }
197 break;
198
199 case dlpack::dtype_code::Float:
200 switch (t.dtype.bits)
201 {

Callers

nothing calls this directly

Calls 1

releaseMethod · 0.45

Tested by

no test coverage detected