Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/device/device_opencl.cpp
| Show First 20 Lines • Show All 1,179 Lines • ▼ Show 20 Lines | void const_copy_to(const char *name, void *host, size_t size) | ||||
| } | } | ||||
| mem_copy_to(*i->second); | mem_copy_to(*i->second); | ||||
| } | } | ||||
| void tex_alloc(const char *name, | void tex_alloc(const char *name, | ||||
| device_memory& mem, | device_memory& mem, | ||||
| InterpolationType /*interpolation*/, | InterpolationType /*interpolation*/, | ||||
| ExtensionType /*extension*/) | ExtensionType /*extension*/, | ||||
| int /*flat_slot*/) | |||||
| { | { | ||||
| VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes."; | VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes."; | ||||
| mem_alloc(mem, MEM_READ_ONLY); | mem_alloc(mem, MEM_READ_ONLY); | ||||
| mem_copy_to(mem); | mem_copy_to(mem); | ||||
| assert(mem_map.find(name) == mem_map.end()); | assert(mem_map.find(name) == mem_map.end()); | ||||
| mem_map.insert(MemMap::value_type(name, mem.device_pointer)); | mem_map.insert(MemMap::value_type(name, mem.device_pointer)); | ||||
| } | } | ||||
| void tex_free(device_memory& mem) | void tex_free(device_memory& mem, int /*flat_slot*/) | ||||
| { | { | ||||
| if(mem.device_pointer) { | if(mem.device_pointer) { | ||||
| foreach(const MemMap::value_type& value, mem_map) { | foreach(const MemMap::value_type& value, mem_map) { | ||||
| if(value.second == mem.device_pointer) { | if(value.second == mem.device_pointer) { | ||||
| mem_map.erase(value.first); | mem_map.erase(value.first); | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 2,178 Lines • Show Last 20 Lines | |||||