06-05-2025, 11:11 PM
Here you can discuss about Knack on shadPS4. There's also a hefty bug list as you can see below.
Current issues in 1.00:
Current issues in 1.00:
- PM4 type 0 race condition. The 2 only ways to fix it depending on your hardware is to enable Async or Debug log filter.
- Device lost on NVIDIA, caused by compute shader 0x9521885c30e19f67. Link to the shader's IR, SRT, ASL and SPV.
- Broken UI text that appears garbled.
- Color issues in many places, like 1-1, Knack's central relic, and laser robots. Likely caused by some incorrect conversion from R8G8B8A8Unorm to B8G8R8A8Srgb.
- No shadow casting, the game is outputting the shadow map in a different way, causing it to not appear. Discovered by Niko on the Discord development channel.
- Broken effects, like smoke and super moves.
- Device lost on AMD at chapter 1-2. Caused by these spammed validation errors:
Code:
[list]
[*][Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkGraphicsPipelineCreateInfo-layout-07988: vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[0] SPIR-V (VK_SHADER_STAGE_VERTEX_BIT) uses descriptor [Set 0, Binding 16, variable "ubo_5"] (type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK) but the VkDescriptorSetLayoutBinding::stageFlags was VK_SHADER_STAGE_FRAGMENT_BIT.
The Vulkan spec states: If a resource variable is declared in a shader, the corresponding descriptor set in layout must match the shader stage (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/pipelines.html#VUID-VkGraphicsPipelineCreateInfo-layout-07988)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkGraphicsPipelineCreateInfo-layout-07990: vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[1] SPIR-V (VK_SHADER_STAGE_FRAGMENT_BIT) uses descriptor [Set 0, Binding 10, variable "fs_samp24"] of type VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE but expected VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER.
The Vulkan spec states: If a resource variable is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/pipelines.html#VUID-VkGraphicsPipelineCreateInfo-layout-07990)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkGraphicsPipelineCreateInfo-layout-07990: vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[1] SPIR-V (VK_SHADER_STAGE_FRAGMENT_BIT) uses descriptor [Set 0, Binding 4, variable "fs_img76"] of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER but expected VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE.
The Vulkan spec states: If a resource variable is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/pipelines.html#VUID-VkGraphicsPipelineCreateInfo-layout-07990)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 6, Index 0, variable "fs_img84"] ImageView type is VK_IMAGE_VIEW_TYPE_2D but the OpTypeImage has (Dim = 1D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 5, Index 0, variable "fs_img44"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 7, Index 0, variable "fs_img52"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkGraphicsPipelineCreateInfo-layout-07990: vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[1] SPIR-V (VK_SHADER_STAGE_FRAGMENT_BIT) uses descriptor [Set 0, Binding 10, variable "fs_samp24"] of type VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE but expected VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER.
The Vulkan spec states: If a resource variable is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/pipelines.html#VUID-VkGraphicsPipelineCreateInfo-layout-07990)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkGraphicsPipelineCreateInfo-layout-07990: vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[1] SPIR-V (VK_SHADER_STAGE_FRAGMENT_BIT) uses descriptor [Set 0, Binding 4, variable "fs_img76"] of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER but expected VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE.
The Vulkan spec states: If a resource variable is declared in a shader, and the descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set in layout must match the descriptor type (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/pipelines.html#VUID-VkGraphicsPipelineCreateInfo-layout-07990)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 6, Index 0, variable "fs_img84"] ImageView type is VK_IMAGE_VIEW_TYPE_2D but the OpTypeImage has (Dim = 1D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 5, Index 0, variable "fs_img44"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 7, Index 0, variable "fs_img52"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 6, Index 0, variable "fs_img84"] ImageView type is VK_IMAGE_VIEW_TYPE_2D but the OpTypeImage has (Dim = 1D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 5, Index 0, variable "fs_img44"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 7, Index 0, variable "fs_img52"] ImageView type is VK_IMAGE_VIEW_TYPE_1D but the OpTypeImage has (Dim = 2D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDrawIndexed-viewType-07752: vkCmdDrawIndexed(): the sampled image descriptor [VkDescriptorSet 0x0, Set 0, Binding 6, Index 0, variable "fs_img84"] ImageView type is VK_IMAGE_VIEW_TYPE_2D but the OpTypeImage has (Dim = 1D) and (Arrayed = 0).
The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752)
[/list]
- This game has heavy use of MRTz depth exports, which we don't support yet.
- Validation errors:
Code:
[list]
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkWriteDescriptorSet-descriptorType-00339: Validation Error: [ VUID-VkWriteDescriptorSet-descriptorType-00339 ] Object 0: handle = 0xb1dcf000000001bf, name = ImageView 2048x2048x1 0x2b43a0000:0x1000000 0:0 0:0 (Stencil), type = VK_OBJECT_TYPE_IMAGE_VIEW; Object 1: handle = 0x36bd8200000001b2, name = Image 2048x2048x1 0x2b43a0000:0x1000000, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x31bdc6eb | vkCmdPushDescriptorSetKHR(): pDescriptorWrites[1].pImageInfo[0].imageView was created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, but descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.The Vulkan spec states: If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set (https://vulkan.lunarg.com/doc/view/1.4.304.0/windows/1.4-extensions/vkspec.html#VUID-VkWriteDescriptorSet-descriptorType-00339)[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-vkCmdDispatch-OpTypeImage-07027: Validation Error: [ VUID-vkCmdDispatch-OpTypeImage-07027 ] Object 0: handle = 0xb1dcf000000001bf, name = ImageView 2048x2048x1 0x2b43a0000:0x1000000 0:0 0:0 (Stencil), type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0xe4a1aa6a | vkCmdDispatch(): the descriptor VkDescriptorSet 0x0[] [Set 0, Binding 1, Index 0, variable "cs_img0"] has VkImageView 0xb1dcf000000001bf[ImageView 2048x2048x1 0x2b43a0000:0x1000000 0:0 0:0 (Stencil)] with format of VK_FORMAT_D32_SFLOAT_S8_UINT which doesn't support VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT.(supported features: VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT|VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT|VK_FORMAT_FEATURE_2_BLIT_SRC_BIT|VK_FORMAT_FEATURE_2_BLIT_DST_BIT|VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT|VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT|VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT|VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT|VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT).The Vulkan spec states: For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view's format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT (https://vulkan.lunarg.com/doc/view/1.4.304.0/windows/1.4-extensions/vkspec.html#VUID-vkCmdDispatch-OpTypeImage-07027)[/list]
- Still crashes on NVIDIA, this time on 0xa98f7ae0. Link to the shader's IR, SRT, ASL and SPV.
- Flickering on AMD.
- Device lost when loading chapter 1-1.
- Test grid map is red.
- Punching will cause a ring_access_elimination assert.