Skip to content

Vulkan validation errors on Meta Quest related to FP16 changes #108009

Closed
@dsnopek

Description

@dsnopek

Tested versions

  • Reproducible in v4.5.beta (master @ 30456ba)

System information

Meta Quest 3 - Android - Vulkan Mobile renderer - Adreno 740 GPU

Issue description

Using Vulkan Validation Layers 1.4.313 (not the version included on the Quest), I'm getting the following validation errors on Meta Quest 3:

VVL errors
E 0:00:01:341   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3681 = OpDPdx %v3half %3680
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:343   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:364   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3980 = OpDPdx %v3half %3979
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:367   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:385   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %265 = OpDPdx %v3half %264
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:404   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3713 = OpDPdx %v3half %3712
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:406   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:430   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %4012 = OpDPdx %v3half %4011
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:433   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:450   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %298 = OpDPdx %v3half %297
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:472   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3689 = OpDPdx %v3half %3688
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:474   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:495   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3988 = OpDPdx %v3half %3987
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:497   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:521   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3689 = OpDPdx %v3half %3688
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:523   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:540   _debug_messenger_callback: VALIDATION - Message Id Number: -1520283006 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08737
	(Warning - This VUID has now been reported 10 times, which is the duplicated_message_limit value, this will be the last time reporting it).
vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
Result type component width must be 32 bits
  %3721 = OpDPdx %v3half %3720
The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:543   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:565   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

E 0:00:01:590   _debug_messenger_callback: VALIDATION - Message Id Number: 115483881 | Message Id Name: VUID-VkShaderModuleCreateInfo-pCode-08740
	(Warning - This VUID has now been reported 10 times, which is the duplicated_message_limit value, this will be the last time reporting it).
vkCreateShaderModule(): SPIR-V Capability StorageInputOutput16 was declared, but one of the following requirements is required (VkPhysicalDeviceVulkan11Features::storageInputOutput16).
The Vulkan spec states: If pCode is a pointer to SPIR-V code, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08740)
  <C++ Source>  drivers/vulkan/rendering_context_driver_vulkan.cpp:642 @ _debug_messenger_callback()

These appear to be related to the changes from PR #107119

Steps to reproduce

This appears to happen with any XR project, even the most minimal. I've attached a minimal XR test project below.

Minimal reproduction project (MRP)

xr-minimum-test.zip

You'll need to install the godot_openxr_vendors addon via the asset library in order to run on Quest. I didn't include it in the ZIP to keep it small.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Unassessed

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions