Commit graph

3399 commits

Author SHA1 Message Date
sunshineinabox
3683ee5c29 Follow namign rules. 2024-05-27 23:25:59 -07:00
sunshineinabox
4a3932ed54 Use dictionary instead for clarity and rework some logic. 2024-05-27 23:11:39 -07:00
sunshineinabox
7ac2cd44d0 Attempt proper VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY implementation 2024-05-27 23:11:39 -07:00
sunshineinabox
4b504243d8 Consolidate some checks 2024-05-27 23:11:39 -07:00
sunshineinabox
1adae7794a Small changes 2024-05-27 23:11:39 -07:00
sunshineinabox
ba56c1d3b3 Missed line 2024-05-27 23:11:39 -07:00
sunshineinabox
f43413f374 Revert Silk.NET to main branch version.
Remove VK_EXT_extended_dynamic_state3 functionality until later PR
2024-05-27 23:11:39 -07:00
sunshineinabox
fb4ef3347a Rebase 2024-05-27 23:11:39 -07:00
sunshineinabox
0000a7ac9c Rebased 2024-05-27 23:11:39 -07:00
sunshineinabox
74a1ab031d Attempt to resolve more validation errors. 2024-05-27 23:11:39 -07:00
sunshineinabox
89dee194d2 Use dynamic state for primitive topology if dynamicPrimitiveTopologyUnrestricted is supported. 2024-05-27 23:11:39 -07:00
sunshineinabox
dcc999c798 Set dirty flag even when value has not changed. 2024-05-27 23:11:39 -07:00
sunshineinabox
7d7b1923aa Resolve
VUID-vkCmdSetPatchControlPointsEXT-None-09422(ERROR / SPEC): msgNum: -1559328192 - Validation Error: [ VUID-vkCmdSetPatchControlPointsEXT-None-09422 ] Object 0: handle = 0x25f0eb40170, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0xa30e8a40 | vkCmdSetPatchControlPointsEXT():   extendedDynamicState2PatchControlPoints or shaderObject feature is not enabled. The Vulkan spec states: At least one of the following must be true: The extendedDynamicState2PatchControlPoints feature is enabled The shaderObject feature is enabled (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdSetPatchControlPointsEXT-None-09422)
    Objects: 1
        [0] 0x25f0eb40170, type: 6, name: NULL
2024-05-27 23:11:39 -07:00
sunshineinabox
de5cb66caf Resolve below validation error
VUID-vkCmdDraw-logicOp-04878(ERROR / SPEC): msgNum: 282117419 - Validation Error: [ VUID-vkCmdDraw-logicOp-04878 ] Object 0: handle = 0x2db247c7370, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x81dc7e0000000305, type = VK_OBJECT_TYPE_PIPELINE; | MessageID = 0x10d0c52b | vkCmdDraw():  VK_DYNAMIC_STATE_LOGIC_OP_EXT state not set for this command buffer. The Vulkan spec states: If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDraw-logicOp-04878)
    Objects: 2
        [0] 0x2db247c7370, type: 6, name: NULL
        [1] 0x81dc7e0000000305, type: 19, name: NULL
2024-05-27 23:11:39 -07:00
sunshineinabox
76c9c2ac8c Resolve the below validation errors.
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442(ERROR / SPEC): msgNum: 1313692360 - Validation Error: [ VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442 ] | MessageID = 0x4e4d5ac8 | vkCreateGraphicsPipelines(): pCreateInfos[0].pDynamicState has VK_DYNAMIC_STATE_VIEWPORT at pDynamicStates[0] and pDynamicStates[28]. The Vulkan spec states: Each element of pDynamicStates must be unique (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442)
    Objects: 0
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132(ERROR / SPEC): msgNum: -206448348 - Validation Error: [ VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132 ] | MessageID = 0xf3b1d924 | vkCreateGraphicsPipelines(): pCreateInfos[0].pDynamicState pDynamicStates[15] is VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and pDynamicStates[28] is VK_DYNAMIC_STATE_VIEWPORT. The Vulkan spec states: If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132)
    Objects: 0

VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133(ERROR / SPEC): msgNum: -858144982 - Validation Error: [ VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133 ] | MessageID = 0xccd9bf2a | vkCreateGraphicsPipelines(): pCreateInfos[0].pDynamicState pDynamicStates[16] is VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and pDynamicStates[1] is VK_DYNAMIC_STATE_SCISSOR. The Vulkan spec states: If the pipeline requires pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present (https://vulkan.lunarg.com/doc/view/1.3.283.0/windows/1.3-extensions/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133)
    Objects: 0
2024-05-27 23:11:39 -07:00
sunshineinabox
f30a8f1580 Whitespace 2024-05-27 23:11:39 -07:00
sunshineinabox
6c6cd8927a Combine compatibility check. 2024-05-27 23:11:39 -07:00
sunshineinabox
8bb369f37d Missed enabling Dynamic State 2024-05-27 23:11:39 -07:00
sunshineinabox
5d5f482d57 Enable VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT 2024-05-27 23:11:39 -07:00
sunshineinabox
863674768d Some more small changes 2024-05-27 23:11:39 -07:00
sunshineinabox
ab7f379e11 Formatting 2024-05-27 23:11:39 -07:00
sunshineinabox
ecadc6a4f9 Implement VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT 2024-05-27 23:11:39 -07:00
sunshineinabox
3fe159f4dd Small fix 2024-05-27 23:11:39 -07:00
sunshineinabox
d4e4ddca91 Fix formatting 2024-05-27 23:11:39 -07:00
sunshineinabox
2483b1a52a Enable VK_EXT_extended_dynamic_state3 this time without seizures. 2024-05-27 23:11:39 -07:00
sunshineinabox
5bf0937be1 Reverted previous commit as it caused mass seizures, disable for now. 2024-05-27 23:11:39 -07:00
sunshineinabox
0f2ed45f96 Revert "Enable the extension..."
This reverts commit 8bbdaab9a1.
2024-05-27 23:11:39 -07:00
sunshineinabox
404f4be9e7 Enable the extension... 2024-05-27 23:11:39 -07:00
sunshineinabox
fd9b4cc10f More comments and formatting fixes 2024-05-27 23:11:39 -07:00
sunshineinabox
eeecd894b9 Add Some Comments 2024-05-27 23:11:39 -07:00
sunshineinabox
767abfe500 Avoid unncessary state changes? 2024-05-27 23:11:39 -07:00
sunshineinabox
5f2d924bac Misc 2024-05-27 23:11:39 -07:00
sunshineinabox
19db5a0ce2 Implement VK_EXT_extended_dynamic_state3 2024-05-27 23:11:39 -07:00
sunshineinabox
66b6b46716 Use device features to enable to disable LogicOp Extended Dynamic State
Improve index counting
2024-05-27 23:11:39 -07:00
sunshineinabox
0049585a36 Enable if supported. 2024-05-27 23:11:39 -07:00
sunshineinabox
c728a3b6a4 ExtDynamicState2 2024-05-27 23:11:39 -07:00
sunshineinabox
cee5ae5551 Some missed values 2024-05-27 23:11:39 -07:00
sunshineinabox
398ca7ad82 Revert unrelated changes. 2024-05-27 23:11:39 -07:00
sunshineinabox
eaedc3ec9e Use Viewport and Scissor with count.
Topology Dynamic State is not working as intended. Need to add check to set correct Topology class. Circle back to this later. For now revert it.

Some minor fixes.
2024-05-27 23:11:39 -07:00
sunshineinabox
e7fbc9a1be Use Correct namespace 2024-05-27 23:11:39 -07:00
sunshineinabox
506f25054d LineWidth is not supported on MoltenVK 2024-05-27 23:11:39 -07:00
sunshineinabox
1befb5bd8f Check if widelines is supported. 2024-05-27 23:11:39 -07:00
sunshineinabox
5894ef043b No need to by reference 2024-05-27 23:11:38 -07:00
sunshineinabox
07ac4192cd Resolve MoltenVK (future version) warning.
Flags are not set for deriving pipelines so remove unnecessary basePipelineIndex value.
2024-05-27 23:11:38 -07:00
sunshineinabox
24e6105e6f Primitive Topolgy DynamicState maybe causing performance degredation. 2024-05-27 23:11:38 -07:00
sunshineinabox
5f02e28017 More Dynamic States 2024-05-27 23:11:38 -07:00
sunshineinabox
4933888a9d Make StencilOp, FrontFace and CullMode Dynamic States. Also prevent Vertex Input Binding Stride dynamic state from enabling with MoltenVK. 2024-05-27 23:11:38 -07:00
sunshineinabox
e6e5829abf Dynamic state for Depth Bounds should not be passed to PipelineDynamicStateCreateInfo as the command to set them is never called.
Do not pass pointer to viewport and scissor as those dynamic states should be supported on all devices.

Same as above for DepthBias values.
2024-05-27 23:11:38 -07:00
gdkchan
c41fddd25e
Vulkan: Extend full bindless to cover cases with phi nodes (#6853)
* Key textures using set and binding (rather than just binding)

* Extend full bindless to cover cases with phi nodes

* Log error on bindless access failure

* Shader cache version bump

* Remove constant buffer match to reduce the chances of full bindless triggering

* Re-enable it for constant buffers, paper mario does actually need it

* Format whitespace
2024-05-26 15:20:10 -03:00
MutantAura
2ebe929fa5
misc: Change disk shader cache compression algorithm to Brotli (RFC 7932) (#6841)
* Prefer `Brotli` compression for disk shader cache.

* Final default case for decompression switch.

* Prefer fastest compression.
2024-05-26 20:06:41 +02:00