Skip to content

[GAME BUG]: Knack graphic bugs and potential causes #2843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
5 tasks done
Randomuser8219 opened this issue Apr 25, 2025 · 0 comments
Open
5 tasks done

[GAME BUG]: Knack graphic bugs and potential causes #2843

Randomuser8219 opened this issue Apr 25, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@Randomuser8219
Copy link
Contributor

Randomuser8219 commented Apr 25, 2025

Checklist (we expect you to perform these steps before opening the issue)

  • I have searched for a similar issue in this repository and did not find one.
  • I am using an official build obtained from releases or updated one of those builds using its in-app updater.
  • I have re-dumped the game and performed a clean install without mods and the issue is still present.
  • I have disabled all patches and cheats and the issue is still present.
  • I have all the required system modules installed.

Describe the Bug

Knack has many graphical issues on shadPS4 right now. I ran the game with Vulkan Validation enabled, and there seems to be some potential causes for them.

  1. Broken text
    Seems to be caused by these errors spammed:
[Render.Vulkan] <Error> vk_platform.cpp:56 DebugUtilsCallback: VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251: vkCreateImage(): pCreateInfo The following VkImageCreateInfo
format (VK_FORMAT_BC7_UNORM_BLOCK)
type (VK_IMAGE_TYPE_2D)
tiling (VK_IMAGE_TILING_OPTIMAL)
usage (VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_STORAGE_BIT)
flags (VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT|VK_IMAGE_CREATE_EXTENDED_USAGE_BIT)
returned (VK_ERROR_FORMAT_NOT_SUPPORTED) when calling vkGetPhysicalDeviceImageFormatProperties2.
The Vulkan spec states: Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts (https://vulkan.lunarg.com/doc/view/1.4.309.0/windows/antora/spec/latest/chapters/resources.html#VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251)
  1. Incorrect colors
    Image
    This seems to be caused by incorrectly converting R8G8B8A8UNORM to B8G8R8A8SRGB.

  2. No shadow casting
    Image
    Might be related to Pos1 exports. Poly made a PR that supports them, but it has since been deleted.
    I also found this spammed a lot before the device lost, this could be the culprit of the device lost crash:

[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)
  1. Broken effects
    Image
    Image
    Image
    Not sure what's causing these yet.

Reproduction Steps

Open Knack with Vulkan validation enabled and Vulkan SDK installed

Specify OS Version

Windows 11 24H2

CPU

AMD Ryzen Z1 Extreme

GPU

AMD Radeon Graphics

Amount of RAM in GB

16 GB

Amount of VRAM in GB

4 GB

Log File

In case I missed something, here's my log:
shad_log.zip

@Hermiten Hermiten added the bug Something isn't working label May 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants