/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Copyright: * 2016, Danny Robson */ #include "./device.hpp" #include "./physical_device.hpp" #include #include using vk::device; /////////////////////////////////////////////////////////////////////////////// device::device (const physical_device &phys, const VkDeviceCreateInfo &info): instantiated (phys.id (), &info, nullptr) { ; } /////////////////////////////////////////////////////////////////////////////// VkPhysicalDeviceMemoryProperties device::physical_properties (void) const { VkPhysicalDeviceMemoryProperties props; vkGetPhysicalDeviceMemoryProperties (id (), &props); return props; } /////////////////////////////////////////////////////////////////////////////// void device::flush (const VkMappedMemoryRange *first, const VkMappedMemoryRange *last) { CHECK_LE (first, last); auto err = vkFlushMappedMemoryRanges (id (), trunc_cast (last - first), first); error::try_code (err); } //----------------------------------------------------------------------------- void device::invalidate (const VkMappedMemoryRange *first, const VkMappedMemoryRange *last) { CHECK_LE (first, last); auto err = vkInvalidateMappedMemoryRanges (id (), trunc_cast (last - first), first); error::try_code (err); }