Loading vulkan/vkjson/vkjson.cc +18 −0 Original line number Diff line number Diff line Loading @@ -590,6 +590,13 @@ inline bool Iterate(Visitor* visitor, &features->variable_pointer_features_khr); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkJsonExtShaderFloat16Int8Features* features) { return visitor->Visit("shaderFloat16Int8FeaturesKHR", &features->shader_float16_int8_features_khr); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkMemoryType* type) { return Loading Loading @@ -690,6 +697,13 @@ inline bool Iterate(Visitor* visitor, visitor->Visit("variablePointers", &features->variablePointers); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* features) { return visitor->Visit("shaderFloat16", &features->shaderFloat16) && visitor->Visit("shaderInt8", &features->shaderInt8); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkPhysicalDeviceProtectedMemoryFeatures* features) { Loading Loading @@ -824,6 +838,10 @@ inline bool Iterate(Visitor* visitor, VkJsonDevice* device) { ret &= visitor->Visit("VK_KHR_variable_pointers", &device->ext_variable_pointer_features); } if (device->ext_shader_float16_int8_features.reported) { ret &= visitor->Visit("VK_KHR_shader_float16_int8", &device->ext_shader_float16_int8_features); } } return ret; } Loading vulkan/vkjson/vkjson.h +11 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,16 @@ struct VkJsonExtVariablePointerFeatures { VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointer_features_khr; }; struct VkJsonExtShaderFloat16Int8Features { VkJsonExtShaderFloat16Int8Features() { reported = false; memset(&shader_float16_int8_features_khr, 0, sizeof(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR)); } bool reported; VkPhysicalDeviceShaderFloat16Int8FeaturesKHR shader_float16_int8_features_khr; }; struct VkJsonDevice { VkJsonDevice() { memset(&properties, 0, sizeof(VkPhysicalDeviceProperties)); Loading Loading @@ -101,6 +111,7 @@ struct VkJsonDevice { VkPhysicalDeviceFeatures features; VkJsonExtDriverProperties ext_driver_properties; VkJsonExtVariablePointerFeatures ext_variable_pointer_features; VkJsonExtShaderFloat16Int8Features ext_shader_float16_int8_features; VkPhysicalDeviceMemoryProperties memory; std::vector<VkQueueFamilyProperties> queues; std::vector<VkExtensionProperties> extensions; Loading vulkan/vkjson/vkjson_instance.cc +10 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,16 @@ VkJsonDevice VkJsonGetDevice(VkInstance instance, features.pNext = &device.ext_variable_pointer_features.variable_pointer_features_khr; } if (HasExtension("VK_KHR_shader_float16_int8", device.extensions)) { device.ext_shader_float16_int8_features.reported = true; device.ext_shader_float16_int8_features.shader_float16_int8_features_khr .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR; device.ext_shader_float16_int8_features.shader_float16_int8_features_khr .pNext = features.pNext; features.pNext = &device.ext_shader_float16_int8_features .shader_float16_int8_features_khr; } vkpGetPhysicalDeviceFeatures2KHR(physical_device, &features); device.features = features.features; } else { Loading Loading
vulkan/vkjson/vkjson.cc +18 −0 Original line number Diff line number Diff line Loading @@ -590,6 +590,13 @@ inline bool Iterate(Visitor* visitor, &features->variable_pointer_features_khr); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkJsonExtShaderFloat16Int8Features* features) { return visitor->Visit("shaderFloat16Int8FeaturesKHR", &features->shader_float16_int8_features_khr); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkMemoryType* type) { return Loading Loading @@ -690,6 +697,13 @@ inline bool Iterate(Visitor* visitor, visitor->Visit("variablePointers", &features->variablePointers); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* features) { return visitor->Visit("shaderFloat16", &features->shaderFloat16) && visitor->Visit("shaderInt8", &features->shaderInt8); } template <typename Visitor> inline bool Iterate(Visitor* visitor, VkPhysicalDeviceProtectedMemoryFeatures* features) { Loading Loading @@ -824,6 +838,10 @@ inline bool Iterate(Visitor* visitor, VkJsonDevice* device) { ret &= visitor->Visit("VK_KHR_variable_pointers", &device->ext_variable_pointer_features); } if (device->ext_shader_float16_int8_features.reported) { ret &= visitor->Visit("VK_KHR_shader_float16_int8", &device->ext_shader_float16_int8_features); } } return ret; } Loading
vulkan/vkjson/vkjson.h +11 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,16 @@ struct VkJsonExtVariablePointerFeatures { VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointer_features_khr; }; struct VkJsonExtShaderFloat16Int8Features { VkJsonExtShaderFloat16Int8Features() { reported = false; memset(&shader_float16_int8_features_khr, 0, sizeof(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR)); } bool reported; VkPhysicalDeviceShaderFloat16Int8FeaturesKHR shader_float16_int8_features_khr; }; struct VkJsonDevice { VkJsonDevice() { memset(&properties, 0, sizeof(VkPhysicalDeviceProperties)); Loading Loading @@ -101,6 +111,7 @@ struct VkJsonDevice { VkPhysicalDeviceFeatures features; VkJsonExtDriverProperties ext_driver_properties; VkJsonExtVariablePointerFeatures ext_variable_pointer_features; VkJsonExtShaderFloat16Int8Features ext_shader_float16_int8_features; VkPhysicalDeviceMemoryProperties memory; std::vector<VkQueueFamilyProperties> queues; std::vector<VkExtensionProperties> extensions; Loading
vulkan/vkjson/vkjson_instance.cc +10 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,16 @@ VkJsonDevice VkJsonGetDevice(VkInstance instance, features.pNext = &device.ext_variable_pointer_features.variable_pointer_features_khr; } if (HasExtension("VK_KHR_shader_float16_int8", device.extensions)) { device.ext_shader_float16_int8_features.reported = true; device.ext_shader_float16_int8_features.shader_float16_int8_features_khr .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR; device.ext_shader_float16_int8_features.shader_float16_int8_features_khr .pNext = features.pNext; features.pNext = &device.ext_shader_float16_int8_features .shader_float16_int8_features_khr; } vkpGetPhysicalDeviceFeatures2KHR(physical_device, &features); device.features = features.features; } else { Loading