Tag: vulkan

为什么在vulkan.h中,不可调度的对象总是被定义为64位?

看着vulkan.hi看到这个: #if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || ….. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; #else #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif 有谁知道为什么64位? 对我来说,总是使用ifdef的第一个案例似乎更合理

为什么vkGetPhysicalDeviceMemoryProperties返回多个相同的内存类型?

因此,我在初始化期间收集有关我的设备的一些信息,并找到vkGetPhysicalDeviceMemoryProperties返回的唯一(或更确切地说,非常相似)内存类型集: Device Name: GeForce GTX 1060 3GB Device ID: 7170 Device Type: 2 Device Vendor ID: 4318 Device API Version: 4194369 (1.0.65) Device Driver Version: 1636843520 (390.65) Device Heaps: 0 -> Size: 3133145088 Flags: 1 1 -> Size: 8523874304 Flags: 0 Device Memory: 0 -> Index: 1 Flags: 0 1 -> Index: 1 Flags: 0 […]

Vulkan:vk * CreateInfo结构中的sType有什么意义?

在新的Vulkan API中的所有创建信息结构( vk*CreateInfo )中,总是有一个.sType成员。 如果价值只能是一件事,为什么会这样? 此外,Vulkan规范非常明确,您只能使用vk*CreateInfo结构作为其相应vkCreate*函数的参数。 这似乎有点多余。 我可以看到,如果驱动程序将此结构直接传递给GPU,您可能需要它(我确实注意到它始终是第一个成员)。 但对于应用程序而言,这似乎是一个非常糟糕的想法,因为如果驱动程序这样做,应用程序将更不容易出错,并且在结构中添加int似乎不是一个计算效率极低的操作。 我只是不明白为什么它存在。 TL; DR 为什么vk*CreateInfo结构具有.sType成员?