Hi! Half a year later, I'm back with the same question, albeit regarding Vulkan :)
We're developing for G76/G78 devices, such as Note 8 Pro or Samsung S20FE, and we're unable to see any effect of F16 support on any of our Mali GPUs. By effects, I mean even intentional half overflows in shader calculations don't show any artifacts on Mali GPUs, while they do show up on Adreno and desktop hardware. There's no effect on performance, with or without F16 extensions.
Here's how we create the VkDevice:
VkPhysicalDeviceFeatures deviceFeatures = {}; deviceFeatures.imageCubeArray = true; deviceFeatures.independentBlend = true; devCreateInfo.pEnabledFeatures = &deviceFeatures; devCreateInfo.enabledLayerCount = 0; devCreateInfo.ppEnabledExtensionNames = deviceExtensions.data(); devCreateInfo.enabledExtensionCount = (uint32_t)deviceExtensions.size(); VkPhysicalDeviceFloat16Int8FeaturesKHR float16Features = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR }; float16Features.shaderFloat16 = true; devCreateInfo.pNext = &float16Features; VK_CALL( vkCreateDevice( physDevice, &devCreateInfo, nullptr, &m_device.device ) );
We also include VK_KHR_shader_float16_int8 into ppEnabledExtensionNames.
What's strange, while the GLES extensions app reports support for VK_KHR_shader_float16_int8 extension, when we capture and replay RenderDoc captures on Mali hardware, RenderDoc fails on replay, stating that VK_KHR_shader_float16_int8 is not supported. We've also tried forcing the compiler to use RelaxedPrecision decorations, but this didn't produce any visual results.
Can you please clarify:
Hi there, does Peter's reply answer your question? If so, please mark it as a suggested answer. Many thanks.